﻿//helper functions
function InitEffects()
{
    $('.menuItem').hover(
	    function()
	    {
	        //skip rollover for selected item
	        var bg = RGBToHex($(this).css('background-color'));
	        if (bg != _background_color_selected)
	        {
                $(this).css('background-color', _background_color_rollover);
            }
        }
        ,
        function()
        { 
            var bg = RGBToHex($(this).css('background-color'));
            if (bg != _background_color_selected)
            {
                $(this).css('background-color', _background_color_default);
            }
        }
    );
}

function InitEffectsVariations()
{
    $('.variationItem img').hover(
	    function()
	    {
	        //skip rollover for selected item
	        var bg = RGBToHex($(this).css('border-color'));
	        if (bg != _background_color_selected)
	        {
                $(this).css('border-color', _background_color_rollover);
            }
        }
        ,
        function()
        { 
            var bg = RGBToHex($(this).css('border-color'));
            if (bg != _background_color_selected)
            {
                $(this).css('border-color', _background_color_default);
            }
        }
    );
}

function RGBToHex(rgb) 
{
    if (  rgb.search("rgb") == -1 ) 
    {
        return rgb;
    } 
    else 
    {
        rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
        function hex(x) {
            return ("0" + parseInt(x).toString(16)).slice(-2);
        }
        return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); 
    }
}

function ClearFrameInterval()
{
    clearInterval(_interval_id_frame_swap);
}

function ShowFrameInterval()
{
    var large_is_visible = $('#frameDescriptionImageLarge').css('visibility');
    var next_state = large_is_visible == 'hidden' ? 'visible' : 'hidden';
    $('#frameDescriptionImageLarge').css('visibility', next_state);
}

function SetSubmitText()
{
    if (_sale_price_each == 0 && _base_quantity == 0)
    {
        $('#submitOK').show();
        $('#submitNotOK').hide();
    }
    else
    {
        if (_quantity_design > 0)
        {
            $('#submitOK').show();
            $('#submitNotOK').hide();
        }
        else
        {
            $('#submitOK').hide();
            $('#submitNotOK').show();
            $('#submitProductSoldByTypeDesc').html(GetProductSoldByTypeDesc() + 's');
        }
    }
}

function GetProductSoldByTypeDesc()
{
    var return_val = '';
    
    switch(_product_sold_by_type_id)
    {
        case 'PHOTO':
            return_val += 'photo';
            break;
        case 'FACE':
            return_val += 'face';
            break;
        case 'SUBJT':
            return_val += 'subject';
            break;
    }
    
    return return_val;
}

function HideProductOptionContainer()
{
    $('#productOptionHeader').css('display', 'none');
    HidePopup('productOptionContainer');
    HidePopup('productDescriptionContainer');
}

function DrawPrintSizeReference(print_width, print_height)
{
	if (print_width == 0 || print_height == 0) return;
	
	var reference_total_inches = 68;
	var reference_total_pixels = 153;
	
	var print_width_new = reference_total_pixels * print_width / reference_total_inches;
	var print_height_new = reference_total_pixels * print_height / reference_total_inches;
	
	$('#printSizeReferenceIcon').animate({width: print_width_new + "px", height: print_height_new + "px"}, 400);
}

function SetMoreInfoPopUp()
{
    var design_caption = '';
    var design_text = '';
    var design_photo_type = ''

    switch (_product_sold_by_type_id)
	{ 
		case "FACE":
			design_caption = "Select number of faces";
			design_text = "From the dropdown menu please select the amount of faces you would like to use to create this design.<br><br>You can provide photos or any images you have the right to use such as drawings created by hand or on your computer.<br><br>Notice how the design fee will change depending on the amount of faces you choose.<br><br>You will receive directions on uploading or sending us your photos or other images after you checkout.";
			design_photo_type = 'faces';
			break;
		case "PHOTO":
			design_caption = "Select number of photos";
			design_text = "From the dropdown menu please select the amount of photos you would like to provide us to create this design.<br><br>You can provide photos or any images you have the right to use such as drawings created by hand or on your computer.<br><br>Notice how the design fee will change depending on the amount of photos you will provide.<br><br>You will receive directions on uploading or sending us your photos or other images after you checkout.";
			design_photo_type = 'photos';
			break;
		case "SUBJT":
			design_caption = "Select number of subjects";
			design_text = "From the dropdown menu please select the amount of subjects you will have in the photo. A subject is any person or pet. So a family of three with two dogs and cat are six subjects.  If the picture only contains a thing, like a house or a logo, it is just one subject.<br><br>Notice how the design fee will change depending on the amount of subjects you will provide.<br><br>You will receive directions on uploading or sending us your photos or other images after you checkout.";
			design_photo_type = 'subjects';
			break;
	}
    
	$('#designMoreInfoFooter').css('visibility', (_product_id_design == _product_id_design_straight_reproduction || _product_id_design == _product_id_design_custom_design ? 'hidden' : 'visible'));
	$('#moreInfoPhotoType').html(design_photo_type);
	$('#changeDesignMoreInfoHeader').html(design_caption);
	$('#changeDesignMoreInfoBody').html(design_text);
}	

function ReplaceQuotes(s)
{
    var return_val = s.replace(/\[SINGLE_QUOTE\]/g, "&#39;");
    return_val = return_val.replace(/\[DOUBLE_QUOTE\]/g, "&#148;");
    return return_val; 
}

function ValidateForm()
{
    var return_val = true;

    if (_sale_price_each == 0 && _base_quantity == 0)
    {
        //no need to validate quantity
    }
    else
    {
        if (_quantity_design == 0)
        {
            alert('Please select the # of ' + GetProductSoldByTypeDesc() + 's you will be using for this design and then click the "Submit" button.');
            return_val = false;
        }
    }
    
    return false;
}

function FormatCurrency(num) 
{
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}

// Simulates PHP's date function
Date.prototype.format=function(format){var returnStr='';var replace=Date.replaceChars;for(var i=0;i<format.length;i++){var curChar=format.charAt(i);if(i-1>=0&&format.charAt(i-1)=="\\"){returnStr+=curChar;}else if(replace[curChar]){returnStr+=replace[curChar].call(this);}else if(curChar!="\\"){returnStr+=curChar;}}return returnStr;};Date.replaceChars={shortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],longMonths:['January','February','March','April','May','June','July','August','September','October','November','December'],shortDays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],longDays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],d:function(){return(this.getDate()<10?'0':'')+this.getDate();},D:function(){return Date.replaceChars.shortDays[this.getDay()];},j:function(){return this.getDate();},l:function(){return Date.replaceChars.longDays[this.getDay()];},N:function(){return this.getDay()+1;},S:function(){return(this.getDate()%10==1&&this.getDate()!=11?'st':(this.getDate()%10==2&&this.getDate()!=12?'nd':(this.getDate()%10==3&&this.getDate()!=13?'rd':'th')));},w:function(){return this.getDay();},z:function(){var d=new Date(this.getFullYear(),0,1);return Math.ceil((this-d)/86400000);},W:function(){var d=new Date(this.getFullYear(),0,1);return Math.ceil((((this-d)/86400000)+d.getDay()+1)/7);},F:function(){return Date.replaceChars.longMonths[this.getMonth()];},m:function(){return(this.getMonth()<9?'0':'')+(this.getMonth()+1);},M:function(){return Date.replaceChars.shortMonths[this.getMonth()];},n:function(){return this.getMonth()+1;},t:function(){var d=new Date();return new Date(d.getFullYear(),d.getMonth(),0).getDate()},L:function(){var year=this.getFullYear();return(year%400==0||(year%100!=0&&year%4==0));},o:function(){var d=new Date(this.valueOf());d.setDate(d.getDate()-((this.getDay()+6)%7)+3);return d.getFullYear();},Y:function(){return this.getFullYear();},y:function(){return(''+this.getFullYear()).substr(2);},a:function(){return this.getHours()<12?'am':'pm';},A:function(){return this.getHours()<12?'AM':'PM';},B:function(){return Math.floor((((this.getUTCHours()+1)%24)+this.getUTCMinutes()/60+this.getUTCSeconds()/3600)*1000/24);},g:function(){return this.getHours()%12||12;},G:function(){return this.getHours();},h:function(){return((this.getHours()%12||12)<10?'0':'')+(this.getHours()%12||12);},H:function(){return(this.getHours()<10?'0':'')+this.getHours();},i:function(){return(this.getMinutes()<10?'0':'')+this.getMinutes();},s:function(){return(this.getSeconds()<10?'0':'')+this.getSeconds();},u:function(){var m=this.getMilliseconds();return(m<10?'00':(m<100?'0':''))+m;},e:function(){return"Not Yet Supported";},I:function(){return"Not Yet Supported";},O:function(){return(-this.getTimezoneOffset()<0?'-':'+')+(Math.abs(this.getTimezoneOffset()/60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()/60))+'00';},P:function(){return(-this.getTimezoneOffset()<0?'-':'+')+(Math.abs(this.getTimezoneOffset()/60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()/60))+':00';},T:function(){var m=this.getMonth();this.setMonth(0);var result=this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,'$1');this.setMonth(m);return result;},Z:function(){return-this.getTimezoneOffset()*60;},c:function(){return this.format("Y-m-d\\TH:i:sP");},r:function(){return this.toString();},U:function(){return this.getTime()/1000;}};
