/*  PCInet Christmas Cards Tabbed Preview: tab_preview.js */
var preview_width = 0;
var preview_height = 0;

function form_validate(frm_obj){
    var cardmsg = document.getElementById("cardtext").value;
    document.getElementById("personalized").value = '';
    if(cardmsg.toLowerCase().indexOf("enter your text")>=0 || cardmsg==""){
        document.getElementById("cardtext").value = "";
        document.getElementById("selectcolor").value = "";
        document.getElementById("selectfname").value = "";
        document.getElementById("selectfsize").value = "";
    } else {
	var txt = document.getElementById("cardtext").value;
	document.getElementById("cardtext").value = no_crlf(txt,'<br>'  + String.fromCharCode(10))
	document.getElementById("personalized").value = "1";
    }
    if (obj_exists("addresstext")) {
		var envmsg = document.getElementById("addresstext").value;
		if (envmsg.toLowerCase().indexOf("enter your address")>=0 || envmsg=="" ){
			document.getElementById("addresstext").value = "";
			document.getElementById("addressfname").value = "";
			document.getElementById("addressimage").value = "";
		} else {
		var txt = document.getElementById("addresstext").value;
		document.getElementById("addresstext").value = no_crlf(txt,'<br>'  + String.fromCharCode(10))
		document.getElementById("personalized").value = "1";
		}
	}
    if (obj_exists("qstring")) {
		GetQueryString(frm_obj)
	}

    return true;
}

function img_update(tab){
    if(tab==2){
        var cardcolors = new Array();
        var cardmsg = document.getElementById("cardtext").value;
        var cardmsg = no_crlf(cardmsg,"~").replace(/&amp;/,"%26").replace(/&/,"%26").replace(/#/,"%23");
        var img = document.getElementById("card_preview");
        var cardcolors = document.getElementById("selectcolor").value.split("_");
        var cardfont = "fonts/" + document.getElementById("selectfname").value + ".ttf";
        var cardsize = document.getElementById("selectfsize").value;
        if(img_isPortrait){
        	var orientation = "&w=282&h=215";
        } else {
        	var orientation = "&w=405&h=135";
        }
		if((preview_width>0) && (preview_height>0)) {
			var orientation = "&w=" + preview_width + "&h=" + preview_height;
		}
        var url="text2image.php?text=" + cardmsg + "&font=" + cardfont + "&r=" + cardcolors[1] + "&g=" + cardcolors[2] + "&b=" + cardcolors[3] + "&size=" + cardsize + "&align=C&aa=1" + orientation;
        try {
        	url = url + card_bgcolor;
		} catch(err) { }
    } else if(tab==3) {
        var envmsg = document.getElementById("addresstext").value;
        var envmsg = no_crlf(envmsg,"~").replace(/&amp;/,"%26").replace(/&/,"%26").replace(/#/,"%23");;
        var img = document.getElementById("envelope_preview");
        var envfont = "fonts/" + document.getElementById("addressfname").value + ".ttf";
        var envsize = "10";
        var url="text2image.php?text=" + envmsg + "&font=" + envfont + "&r=0&g=0&b=0&size=" + envsize + "&align=L&aa=1&w=300&h=180";
        try {
        	url = url + env_bgcolor;
		} catch(err) { }
        try {
			var addressimage = document.getElementById("addressimage");
			var envimage = addressimage.value;
			var envimage_price = (+addressimage.options[addressimage.selectedIndex].getAttribute("attribcost"));
			document.getElementById("debug").innerHTML = envimage_price;
			// changed so larger more expensive envelope images do not render the preview.
			if(envimage){
				if (envimage_price >= 1.20 ) {
					img.style.display="none";
				} else {
					img.style.display="inline";
				}
				document.getElementById("envelope_image").src = "images/envelope/" + envimage + ".jpg";
				document.getElementById("envelope_image").style.display = "";
				img.style.position = "absolute";
				img.style.left = "92px";

			} else {
				document.getElementById("envelope_image").src = "";
				document.getElementById("envelope_image").style.display = "none";
				img.style.position = "";
				img.style.left = "";
			}
		  } catch(err) { }
	}
    img.src = url;
    //document.getElementById("debug").innerHTML = url + "<br><br>";

}

function Personalize_Blank(obj){
    if(obj.value=="Blank") {
        document.getElementById("card_interior").style.background="url(" + img_blank + ")";
        if(img_isPortrait){
		document.getElementById("card_preview").style.marginTop="150px";
	} else {
        	document.getElementById("card_preview").style.marginTop="100px";
	}
    } else {
        document.getElementById("card_interior").style.background="url(" + img_standard + ")";
        if(img_isPortrait){
		document.getElementById("card_preview").style.marginTop="190px";
	} else {
        	document.getElementById("card_preview").style.marginTop="150px";
	}
    }
}
function switch_tabs(tab) {
    var tabs = document.getElementById('tabs').getElementsByTagName('li').length -1; //switch off all tabs and content
    for (i=0; i < tabs; i++) {
        document.getElementById('tab'+(i+1)).className = '';
        document.getElementById('tab'+(i+1)+'_content').style.display = 'none';
    }
    //switch on the selected tab and content
    document.getElementById('tab'+tab).className = 'current';
    document.getElementById('tab'+tab+'_content').style.display = 'block';
}
function no_crlf(str,newstr) {
    return rtrim(str).replace(/\r\n|\r/g, '\n').replace(/\n/g, newstr);
}
function ltrim(str) {
    for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
    return str.substring(k, str.length);
}
function rtrim(str) {
    for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
    return str.substring(0,j+1);
}
function trim(str) {
    return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
    var whitespaceChars = " \t\n\r\f";
    return (whitespaceChars.indexOf(charToCheck) != -1);
}
function showlayer(id) {
    obj=document.getElementById(id)
    obj.style.display = "block"
}
function hidelayer(id) {
    obj=document.getElementById(id)
    obj.style.display = "none"
}
function obj_exists(id){
	try {
		var x = document.getElementById(id).id;
		return true;
	} catch(err) {
		return false;
	}
}

/* Edit last item in the basket. ON the Product page template, add this to each form <input type="hidden" name="qstring" value=""> */


function GetQueryString(obj_frm){
	// store all form paramiters into a single hidden field as a query string.
	var els = obj_frm.elements;
	var qstring = ""
	for(var j=0; j<obj_frm.elements.length; j++){
		if( els[j].name!="qstring" && els[j].type!="submit" ){
			//qstring  = qstring + els[j].name + "=" + els[j].value.replace(/&/,"%26").replace(/=/,"%3d") + "&";
			if(els[j].value!=""){
				qstring  = qstring + els[j].name + "=" + encodeURIComponent(els[j].value)+ "&";
			}
		}
	}
	obj_frm.elements["qstring"].value = qstring;
}

function RestoreQueryString(frm_id, qstring) {
	// Given the form Id and the query string, restores all form fields.
	var obj_frm = document.getElementById(frm_id);
	fleegix.form.restore( obj_frm, qstring );
}

if (typeof fleegix == 'undefined') { var fleegix = {}; }
if (typeof fleegix.form == 'undefined') { fleegix.form = {}; }

fleegix.form.restore = function (form, str, o) {
  var opts = o || {};
  var arr = str.split('&');
  var d = {};
  for (var i = 0; i < arr.length; i++) {
    var pair = arr[i].split('=');
    var name = pair[0];
    var val = pair[1];
    if (typeof d[name] == 'undefined') {
      d[name] = val;
    }
    else {
      if (!(d[name] instanceof Array)) {
        var t = d[name];
        d[name] = [];
        d[name].push(t);
      }
      d[name].push(val);
    }
  }
  for (var i = 0; i < form.elements.length; i++) {
    elem = form.elements[i];
    if (typeof d[elem.name] != 'undefined') {
      val = d[elem.name];
      switch (elem.type) {
        case 'text':
        case 'hidden':
        case 'password':
        case 'textarea':
        case 'select-one':
          elem.value = decodeURIComponent(val);
          break;
        case 'radio':
          if (encodeURIComponent(elem.value) == val) {
            elem.checked = true;
          }
          break;
        case 'checkbox':
          for (var j = 0; j < val.length; j++) {
            if (encodeURIComponent(elem.value) == val[j]) {
              elem.checked = true;
            }
          }
          break;
        case 'select-multiple':
          for (var h = 0; h < elem.options.length; h++) {
            var opt = elem.options[h];
            for (var j = 0; j < val.length; j++) {
              if (encodeURIComponent(opt.value) == val[j]) {
                opt.selected = true;
              }
            }
          }
          break;
        case 'submit':
        case 'reset':
        case 'file':
        case 'image':
        case 'button':
          if (opts.pedantic) {
            elem.value = decodeURIComponent(val);
          }
          break;
      }
    }
  }
  return form;
};
