// Constants
var HOME_PAGE				 = 0;
var SHOPPING_CART		 = 1;
var REGISTRATION		 = 2;
var STAMP_EDITOR		 = 3;
var STAMP_UPLOADER	 = 4;
var COLOR_PICKER		 = 5;
var REG_UPD_CONFIRM	 = 6;
var REG_UPD_CONFIRM	 = 7;

var CHECKOUT_STEP_1	 = 8;  // Billing info
var CHECKOUT_STEP_2	 = 9;  // Confirm
var CHECKOUT_STEP_3	 = 10; // Credit Card parameters

var COMPARATOR			 = 11;
var INFO_BLOCK			 = 12;

var RECEIPTS_LIST		 = 13;
var RECEIPT_DETAILS	 = 14;

var TECH_INFO	 = 17;
var SITE_MAP	 = 18;

var nCorrectionsInEditor = false;

function doCorrection(){
    nCorrectionsInEditor = true;
}

function checEditorCorrs(){
    if (nCorrectionsInEditor) {
        alert("You have amended the design of your stamp. Please click the \"Update preview\" button");
        return false;
    } else {
        return true;
    }
}

// Opens or closes catalog
// If slectCatalog set to true it selects current catalog 
function onOpenCatalog(catID, slectCatalog, strProdGUID){
  var df = document.forms["MainForm"];
  var aOpened; 
  var bExists = false;
	
	if (slectCatalog) {
		df.catSelected.value = catID;
        
        if (strProdGUID) {
            //alert(strProdGUID);
            df.action = strProdGUID;
        } else {
            df.currpage.value = HOME_PAGE;
        }
    } else {
		if (df.catsOpened.value){
			aOpened = df.catsOpened.value.split(",");
			
			for (var i = aOpened.length-1; i >= 0 ; i--){
				if (aOpened[i] == catID){
				 
					aOpened.splice(i, 1);
					bExists = true;
					break;
				}
			}
		} else {
			aOpened = new Array();
		}
		
		if (!bExists) 
			aOpened[aOpened.length] = catID;
		
		df.catsOpened.value = aOpened.join(",");
	}
  
  df.submit();
}

function onColorSelected(prodID){
	var df = document.forms["MainForm"];
	
	if (df["prod_color"].value == -1){
		alert("Please select colour!");
		return false;
	} else {
		onBuyProduct(prodID);
	}
}

function onBuyProduct(prodID, noCallEvent){
	var df = document.forms["MainForm"];
	
	df.action = "prc_buyprod.php";
	if (prodID != -1) df.currprod.value = prodID;
	df.actname.value = "ADD";
		
	if (!noCallEvent) onMainSubmit();
	
	df.submit();
}

function onChooseColor(prodID){
	var df = document.forms["MainForm"];
	
	df.currprod.value = prodID;
	
	toAnotherPage(COLOR_PICKER);
}

function onDesignProd(prodID){
	var df = document.forms["MainForm"];
	
	df.currprod.value = prodID;
	
	toAnotherPage(STAMP_EDITOR);
}

function onUpdateProduct(prodID, prodCountNum, prodColorID, strFileName){
	var df = document.forms["MainForm"];
	
	if (!validateField(digits_exp, cutSpaces(df["prodcount_" + prodCountNum])) || (df["prodcount_" + prodCountNum].value <= 0)) {
		alert("Please provide proper count");
		return;
	}
	
	df.prodcount.value = df["prodcount_" + prodCountNum].value;
	df.action = "prc_buyprod.php";
	df.currprod.value = prodID;
	df.currprodcolor.value = prodColorID;
	df.currprodfname.value = strFileName;
	df.actname.value = "UPDATE";
	
	onMainSubmit();
	
	df.submit();
}

function onRemoveFormBasket(itemID){
	var df = document.forms["MainForm"];
	
	df.action = "prc_buyprod.php";
	df.actname.value = "DELETE";
	df.currprod.value = itemID;
	
	onMainSubmit();
	
	df.submit();
}

function toAnotherPage(pageNum, noCallEvent){
	var df = document.forms["MainForm"];
	var nPageNum = pageNum ? pageNum : HOME_PAGE;
	
	if (!noCallEvent) onMainSubmit();


    switch (pageNum) {
        case STAMP_EDITOR : 
            df.action = "design-your-rubber-stamps";
            break;
        case STAMP_UPLOADER : 
            df.action = "upload-own-design";
            break;
        case INFO_BLOCK : 
            df.action = "contact-info";
            break;
        case TECH_INFO:
            df.action = "technical-info";
            break;
        case SITE_MAP : 
            df.action = "site-map";
            break;
        case 15:
            df.action = "index.php?pt=invoice";
            break;
        default :
            df.action = "index.php";
    }
    
	
    
	df.currpage.value = nPageNum;
	df.submit();
}

function viewBasket(){
	toAnotherPage(SHOPPING_CART);
}

function onLogout(){
	var df = document.forms["MainForm"];
	
	df.action = "index.php";
	df.actname.value = "LOGOUT";;
	
	//onMainSubmit();
	
	df.submit();
}

function doRegister(){
	var df = document.forms["MainForm"];
	df.prevpage.value = df.currpage.value + "_fix";
	
	toAnotherPage(REGISTRATION);
}

function doCheckout(){
	toAnotherPage(CHECKOUT_STEP_1);
}

function viewReceipt(currRecGUID){
	var df = document.forms["MainForm"];
	
	df.currrec.value = currRecGUID;
	
	toAnotherPage(RECEIPT_DETAILS);
}

// Envoked when use presses continue button on design editor/uploader page
function onDesignCompleted(designType, nPage){
	var df = document.forms["MainForm"];
	
	onMainSubmit();
	
	df.action = "index.php";
	df.currpage.value = nPage;	
	df.owndesready.value = designType;

	df.submit();
}

function previewDesign(strFileName, nImWidth, nImHeight){
	var strURL = "preview.php?filename=" + escape(strFileName) + "&width=" + nImWidth + "&height=" + nImHeight;
	
	var objWindow = window.open(strURL, "_blank", "top=70,left=200,height=" + (nImHeight + 50) + ",width=" + nImWidth + ",status=no,toolbar=no,menubar=no,location=no");
	void(0);
}

function paymentForm(){
    var df = document.forms["MainForm"];
    
    df.action = "https://securetrading.net/authorize/form.cgi";
    df.method = "POST";
    df.submit();
}

function clearFormSelection(){
    var objRadio = document.forms["MainForm"]["stamp_type"];

    if (objRadio){
        for (var i=0; i<objRadio.length; i++){
            objRadio[i].checked = false;
        }
    }
}

function doBlink() {
  // Blink, Blink, Blink...
  var blink = document.all.tags("BLINK")
  for (var i=0; i < blink.length; i++)
    blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : "" 
}

function startBlink() {
  // Make sure it is IE4
  if (document.all)
    setInterval("doBlink()",500)
}

window.onload = startBlink;
