var IE = document.all?true:false
var img = new Image();
var loading = false;
var filename = "";


function getBrowserCompatibility() {
    var browser=navigator.appName;
    var b_version=navigator.appVersion;
    var version = parseFloat(b_version);
    var message = null;
    if (browser=="Netscape") {
        if (version<=4) {
            message = "WARNING: Your current browser may not be able to optimally display or browse active content on this website. We strongly recommend that you upgrade your browser to the latest version. You are running ["+browser+" version: "+version+"]. Minimum required version: 4";
        }
    } else if(browser=="Microsoft Internet Explorer") {
        var regexp = /MSIE.\d\.[\d]+/gi;
        version = b_version.match(regexp);
        regexp = /\d\.[\d]+/gi;
        version = version[0].match(regexp);
        version = parseFloat(version[0]);
        if (version < 7) {
            message = "WARNING: Your current browser may not be able to optimally display or browse active content on this website. We strongly recommend that you upgrade your browser to the latest version. You are running ["+browser+" version: "+version+"]. Minimum required version: 4";
        }
    }
    if (message != null) {
        alert(message);
    }

    //alert(browser);
    //alert(b_version);
}


// If NS -- that is, !IE -- then set up for mouse capture
//if (!IE) document.captureEvents(Event.MOUSEMOVE)

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX = 0, tempY = 0;
var scrOfX = 0, scrOfY = 0;

// Main function to retrieve mouse x-y pos.s

function getScrollXY() {
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return true;
}
/*
 *Try this script later instead of getWidth and getHeight
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}
*/

function getDocumentHeight() {
	if (IE) {
		return document.documentElement.clientHeight;
	} else {
		return document.height;
	}
}
function getDocumentWidth() {
	if (IE) {
		return document.documentElement.clientWidth;
	} else {
		return document.width;
	}
}

function getMouseXY(e) {
  tempX = 0;
  tempY = 0;
  srcOfY = 0;
  srcOfX = 0;
  getScrollXY();
  if (IE) { // grab the x-y pos.s if browser is IE
	tempX = event.clientX+scrOfX;
    tempY = event.clientY+scrOfY;
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX;
    tempY = e.pageY;
  }
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  return true;
}

var toScroll = 0;
var hasScrolled = 0;
var scrollInc = 50;
var scrolldelay = null;

function stopScroll() {
   	if (scrolldelay != null) {
		clearTimeout(scrolldelay);
		toScroll = 0;
		hasScrolled = 0;
		scrollInc = 50;
	}
}

function pageScroll() {
	if ((toScroll - hasScrolled) < scrollInc) {
		scrollInc = (toScroll - hasScrolled);
	}
   	window.scrollBy(0,scrollInc); // horizontal and vertical scroll increments
	hasScrolled = hasScrolled + scrollInc;
	if (hasScrolled >= toScroll) {
		stopScroll();
	} else {
   		scrolldelay = setTimeout('pageScroll()',2); // scrolls every 100 milliseconds
	}
}

function jumpScroll() {
   	window.scroll(0,150); // horizontal and vertical scroll targets
}

function RemoveMessage(num, must_scroll) {
  d = document;
  mylayer = findObj("message"+num);
  if (mylayer != null) {
	d.body.removeChild(mylayer);
    mylayer = null;
	if (must_scroll) {
	  toScroll = scrOfY;
	  pageScroll();
	} else {
	  toScroll = 0;
	  hasScrolled = 0;
	  scrollInc = 50;
	}
  }
}
 
function ShowMessage(num,msg,must_center, width, height) {
  d = document;
  RemoveMessage(num, 0);
  if ((width == "") || (width == 0)) {
      width = 200;
  }
  if (msg.length != 0) {
	var mylayer = d.createElement("DIV");
    mylayer.id = "message"+num;
    mylayer.style.visibility = "hidden";
	mylayer.style.position = "absolute";
    mylayer.zIndex = 100;
    mylayer.innerHTML = '<div class="show_message_layer" ><table border="0" cellspacing="5px"><tr><td width="100%" align="right"><a href="JavaScript: RemoveMessage('+num+', 0)"; class="links">close[x]</a></td></tr><tr><td align="left" class="show_message_content" width="'+width+'px">'+msg+'</td></tr></table></div>';
    d.body.appendChild(mylayer);
	//Locate the newly added div layer
	mylayer = findObj("message"+num);
	if (must_center) {
        if ((width > 0) && (height > 0)) {
			 var tempTop = tempY-(height/2);
			 if (tempTop <0) {
				 tempTop = 10;
			 }
             mylayer.style.top = tempTop.toString()+"px";
             mylayer.style.left = ((getDocumentWidth()/2)-(width/2)).toString()+"px";
        } else {
			var tempTop = tempY;			
            mylayer.style.top = tempTop.toString()+"px";
            mylayer.style.left = ((getDocumentWidth()/2)-100).toString()+"px";
        }
	} else {
		tempY = tempY-100;	
		mylayer.style.top = tempY.toString()+"px";		
		a_width = mylayer.clientWidth;
		mylayer.style.left = tempX-(a_width/2).toString()+"px";
	}
	mylayer.style.visibility = "visible";
  }
}

function ConfirmationBox(msg, method, yay_button_caption, nay_button_caption, width, height) {
    var buttons = '<br/><table border="0"><tr><td><button type="button" onclick="'+method+'">'+yay_button_caption+'</button></td><td>&nbsp</td><td><button type="button" onclick="RemoveMessage(\'1\', 0)">'+nay_button_caption+'</button></td>';
    var box_msg = msg+buttons;
    ShowMessage(1, box_msg, true, width, height);
}

function EmailFriend(num, mfrom, cnt) {
	d = document;
	var code = findObj("code_"+cnt);
	var description = findObj("description_"+cnt);
	var host = findObj("host");
	var module = findObj("module");
	var price = findObj("price_"+cnt);
	message = "Hi.I&nbsp;think&nbsp;this&nbsp;item&nbsp;may&nbsp;interest&nbsp;you.<br/>Item:&nbsp;"+code.value+"<br/>Description:&nbsp;"+description.value+"<br/>";
	mlink = "Link:&nbsp;<a href=\""+host.value+module.value+"/getmodule.php?id=listitems.php&dowhat=details&code="+code.value+"\">Website</a>";
	encoded_message = escape(encodeURI(message+mlink));
	msg = '<div id="sendmail_layer" class="show_message_layer">';
	msg += '<table>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Your&nbsp;name:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input type="text" name="from" id="from" maxlength="60" size="40" value="'+mfrom+'" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Reciepient email address:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input type="text" name="to" id="to" maxlength="60" size="40" value="" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Message:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += message+mlink;
	msg += '<input type="hidden" name="message" id="message" value=\''+encoded_message+'\'>';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Verification image:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<div id="riv_layer"></div>';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Please&nbsp;retype&nbsp;the number&nbsp;displayed above:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input name="riv_text" id="riv_text" type="text" size="5" maxlength="6" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';	
	msg += '<tr>';
	msg += '<td><div align="right">&nbsp;</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<a class="button" href="JavaScript: getSendMail(\'send\', findObj(\'from\').value, findObj(\'to\').value, findObj(\'message\').value, findObj(\'riv_text\').value, \'sendmail_layer\')"><span>Send</span></a>';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '</table>';
	msg += '</div>';
	ShowMessage(num,msg,true, 500, 400);	
	getRIV('riv_layer');
}

function EmailGeneral(num, mfrom, mto, cnt) {
	d = document;
	var code = findObj("code_"+cnt);
	RemoveMessage(num, 0);
	var mylayer = d.createElement("DIV");
	mylayer.id = "message"+num;
	mylayer.style.position = "absolute";
	mylayer.style.top = tempY.toString()+"px";
	if (IE) {
		mylayer.style.left = ((document.documentElement.clientWidth/2)-100).toString()+"px";	
	} else {
		mylayer.style.left = ((d.width/2)-100).toString()+"px";	
	}
	mylayer.style.color = "#000000";
	mylayer.style.background = "#FFFFFF";
	mylayer.style.zIndex = 10;
	mylayer.style.padding = "5px";
	mylayer.style.paddingRight = "5px"; 
	msg = '<div id="sendmail_layer" class="show_message_layer">';
	msg += '<input type="hidden" name="to" id="to" value="'+mto+'" />';
	msg += '<table>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Your&nbsp;name:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input type="text" name="from" id="from" maxlength="60" size="40" value="'+mfrom+'" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Message:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<textarea name="message" id="message" cols="30" rows="5">'+(code != null ? code.value : '')+'</textarea>';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Verification image:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<div id="riv_layer"></div>';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">Please&nbsp;retype&nbsp;the number&nbsp;displayed above:</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input name="riv_text" id="riv_text" type="text" size="5" maxlength="6" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';	
	msg += '<tr>';
	msg += '<td class="form_field_title"><div align="right">&nbsp;</div></td>';
	msg += '<td width="3%">&nbsp;</td>';
	msg += '<td width="67%">';
	msg += '<div align="left">';
	msg += '<input type="button" value="Send" onclick="getSendMail(\'send\', findObj(\'from\').value, findObj(\'to\').value, findObj(\'message\').value, findObj(\'riv_text\').value, \'sendmail_layer\')" />';
	msg += '</div>';
	msg += '</td>';
	msg += '</tr>';
	msg += '</table>';
	msg += '</div>';
	mylayer.innerHTML = '<div style="border:1px solid #000000; z-index:100"><table border="0" cellspacing="5px"><tr><td width="100%" align="right"><a href="JavaScript:RemoveMessage(\''+num+'\', 0)"; class="links">close[x]</a></td></tr><tr><td align="left" width="340px">'+msg+'</td></tr></table></div>';
	d.body.appendChild(mylayer);
	getRIV('riv_layer');
}

function findObj(n, d) { //v4.01
	var p,i,x;  
	if(!d) 
		d = document; 
	if ((p=n.indexOf("?")) > 0 && parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if (!(x=d[n]) && d.all) x = d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); 
	return x;
}

function showBigImage(mfilename, width, height) {
    var a_image = findObj("item_details_image");
    filename = mfilename;
    img = null;
    img = new Image();
    var img_big = "images/stock/big/"+filename;
    img.src = "images/stock/small/"+filename;

    if (a_image != null) {
        a_image.src = img.src;
        a_image.onclick = function() { ShowMessage(1, '<img src="'+img_big+'" />', 1, width, height); };
    }
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function changeMenuId(id) {
	var dowhat = findObj("dowhat");
	var mmenu_id = findObj("menu_id");
	var mid = findObj("id");
	var dowhat_search = findObj("dowhat_search");
	var searchphrase = findObj("searchphrase");
	var page = findObj("page");
	if (page != null) {
		page.value = 1;
	}
	var total_row_count = findObj("total_row_count");
	if (total_row_count) {
		total_row_count.value = 0;
	}
	var from_record = findObj("from_record");
	if (from_record != null) {
		from_record.value = 0;
	}
	if (mid != null) {
		mid.value = 0;
	}
	if (mmenu_id != null) {
		if (dowhat_search) {
			dowhat_search.value = "";
			searchphrase.value = "";
		}
		dowhat.value = "list";
		mmenu_id.value = id;
		document.frm.action = "getmodule.php?id=listitems.php";
		document.frm.submit();
	}
}

function showItemLoading() {
	var loading_layer = findObj("loading");
	if (loading_layer) {
		loading_layer.style.visibility = "visible";
	}
}

function changeId(id, msearch) {
	setTimeout("showItemLoading()", 50); //Gives loading jpeg time to start animation IE fix
	var dowhat = findObj("dowhat");
	var mid = findObj("id");
	var loading = findObj("loading");
	var page = findObj("page");
	var process_step =findObj("process_step");
	if (page != null) {
		page.value = 1;
	}
	var from_record = findObj("from_record");
	if (from_record != null) {
		from_record.value = 0;
	}
	var searchphrase = findObj("searchphrase");
	var dowhat_search = findObj("dowhat_search");
	if (dowhat_search != null) {
		dowhat_search.value = msearch;
	}
	var total_row_count = findObj("total_row_count");
	if (total_row_count) {
		total_row_count.value = 0;
	}
	if (msearch == "") {
		if (searchphrase != null) {
			searchphrase.value = "";
		}
	} else if (msearch == "clear_search") {
		var mmenu_id = findObj("menu_id");
		searchphrase.value = "";
		mmenu_id.value = "";
	}
	if (process_step) {
		process_step.value = 0;
	}
	if (loading) {
		if (IE) { //Internet Explorer
			loading.style.filter = "alpha(opacity=100);";
		} else { //Safari & Mozilla
			loading.style.opacity = 1;
		}	
		var Opacity = 70;
		if (IE) {
			loading.filters["alpha"].opacity = Opacity;	
		} else {
			loading.style.opacity = (Opacity/100);
		}		
	}
	if ((mid != null) || (msearch == "search")) {
		dowhat.value = "list";
		if (mid != null) {
			mid.value = id;
		}
		document.frm.action = "getmodule.php?id=listitems.php";
		document.frm.submit();
	}
}

function onChangeCurrency() {
	document.frm.action = "getmodule.php?id=listitems.php";
	document.frm.submit();
}

function onEditChange(cnt) {
	var code = findObj("code_"+cnt);
	var qty = findObj("qty_"+cnt);
	var price = findObj("price_"+cnt);
	var use_vat_p = findObj("use_vat_p_"+cnt);
    var category_id = findObj("category_id_"+cnt);
    var subcategory_id = findObj("subcategory_id_"+cnt);
    if (category_id == null) {
        category_id = findObj("menu_id");
        subcategory_id = findObj("id");
    }
	var total_layer = findObj("total_layer_"+cnt);
	var discount = findObj("discount_"+cnt);
	var user_conversion_rate = findObj("user_conversion_rate");	
	var user_currency_symbol = findObj("user_currency_symbol");
    var discount_system = findObj("discount_system");
	var total = 0.00;
    var testvalue = 0;
	if (qty.value > 0) {
		if ((qty != null) && (price != null) && (total_layer != null)) {
			total = qty.value*price.value*user_conversion_rate.value*use_vat_p.value;
            if (discount_system.value == "qty") {
                testvalue = qty.value;
            } else {
                testvalue = qty.value*price.value;
            }
            var Discount = GetDiscount(code.value, category_id.value, subcategory_id.value, testvalue);
            if (!CheckDiscountConditions(Discount.discount_id, Discount.discount_type, Discount.apply_condition_on)) {
                if (Discount.default_discount > 0) {
                    Discount.discount = Discount.default_discount;
                } else {
                    Discount.discount = 0;
                }
            }
			discount_percentage = Discount.discount;
			discount.value = discount_percentage;
			discount_value = total*(discount_percentage/100);
			total_layer.innerHTML = user_currency_symbol.value+"&nbsp;"+total.toFixed(2)+"<br />-&nbsp;<font color=\"#009900\">"+discount_percentage+"%</font><br />"+user_currency_symbol.value+"&nbsp;"+(total-discount_value).toFixed(2);
		}
	}
}

function onSelectChange(cnt) {
	var qty = findObj("qty_"+cnt);
	var price = findObj("price_"+cnt);
	var use_vat_p = findObj("use_vat_p_"+cnt);
	var code = findObj("code_"+cnt);
    var category_id = findObj("category_id_"+cnt);
    var subcategory_id = findObj("subcategory_id_"+cnt);
    if (category_id == null) {
        category_id = findObj("menu_id");
        subcategory_id = findObj("id");
    }
	var total_layer = findObj("total_layer_"+cnt);
	var mlayer = findObj("qty_layer_"+cnt);
	var discount = findObj("discount_"+cnt);
	var user_conversion_rate = findObj("user_conversion_rate");
	var user_currency_symbol = findObj("user_currency_symbol");
    var discount_system = findObj("discount_system");
	var total = 0.00;
	if (qty != null) {
		if (qty.options[qty.selectedIndex].value == "x") {
			mlayer.innerHTML = "<input type=\"text\" name=\"qty_"+cnt+"\" id=\"qty_"+cnt+"\" size=\"4\" maxlength=\"8\" onkeypress=\"return killUnwantedKeys(this, event, true)\" onkeyup=\"onEditChange("+cnt+")\" class=\"showcart_qty_edit\" value=\"1\" />";
			qty = findObj("qty_"+cnt);
			if (qty != null) {
				qty.focus();
			}
		} else {
			if ((qty != null) && (price != null) && (use_vat_p != null)&& (user_conversion_rate != null) && (total_layer != null)) {
				if (user_conversion_rate.value != 1) {
					use_vat_p.value = 1;
				}
				total = qty.value*price.value*user_conversion_rate.value*use_vat_p.value;
                if (discount_system.value == "qty") {
                    testvalue = qty.value;
                } else {
                    testvalue = qty.value*price.value;
                }
                var Discount = GetDiscount(code.value, category_id.value, subcategory_id.value, testvalue);
                if (!CheckDiscountConditions(Discount.discount_id, Discount.discount_type, Discount.apply_condition_on)) {
                    if (Discount.default_discount > 0) {
                        Discount.discount = Discount.default_discount;
                    } else {
                        Discount.discount = 0;
                    }
                }
                discount_percentage = Discount.discount;
				discount.value = discount_percentage;
				discount_value = total*(discount_percentage/100);
				total_layer.innerHTML = user_currency_symbol.value+"&nbsp;"+total.toFixed(2)+"<br />-&nbsp;<font color=\"#009900\">"+discount_percentage+"%</font><br />"+user_currency_symbol.value+"&nbsp;"+(total-discount_value).toFixed(2);
			}
		}
	}
}

/*
function showItemDetail(sel) {
	var dowhat = findObj("dowhat");
	var dowhat_search = findObj("dowhat_search");
	var mcnt = findObj("mcnt");
	if ((dowhat != null) && (mcnt != null)) {
		mcnt.value = sel;
		dowhat.value = "details";
		if (dowhat_search != null) {
			dowhat_search.value = "";
		}
		document.frm.method = "POST";
		document.frm.action = "getmodule.php?id=listitems.php";
		document.frm.submit();
	}
}
*/

function pageChange(mdowhat, maction, up_or_down, page_select, page, from_record, show_records, total_records) {
    var dowhat = findObj("dowhat");
	var hold_from_record = 0;
	var may_submit = true;
	if (up_or_down == -1) {
		if (page_select != null) {
            if (isNaN(page_select)) {
    			page.value = page_select.options[page_select.selectedIndex].value;
            } else {
                page.value = page_select;
            }
            from_record.value = (Number(page.value)*Number(show_records.value))-show_records.value;
            from_record.value = (from_record.value < 0 ? 1 : from_record.value);
		}
	} else if (up_or_down == 0) { //Previous Pages
		from_record.value = Number(from_record.value) - Number(show_records.value);
		page.value = Number(page.value) - 1;
		if (Number(from_record.value) < 0) {
			from_record.value = 0;
			may_submit = false;
		}
		if (Number(page.value) < 1) {
			page.value = 1;
		}
	} else if (up_or_down == 1) { //Next Pages
		hold_from_record = Number(from_record.value);
		from_record.value = Number(from_record.value) + Number(show_records.value);
		page.value = Number(page.value) + 1;
		if (Number(from_record.value) >= Number(total_records.value)) {
			from_record.value = hold_from_record;
			page.value = Number(page.value) - 1;
			may_submit = false;				
		}			
	}
	if (may_submit) {
        mySubmit(mdowhat, maction);
	}
}	

function resetPage(page, from_record) {
	if ((page != null) &&
		(from_record != null)) {
		page.value = 1;
		from_record.value = 0;
	}
}

function autoPageChange(url){
    if ((url.length == 0) || (url == 'undefined')) {
        this.location = "index.php";
    } else {
        this.location = url;
    }
}

function timedAutoRedirect(url) {
   setTimeout('autoPageChange(\''+url+'\')', 2000);
}

function killReturnKey(evt, sym_submit, method) {
    var mchar = "";
    if (IE) {
        mchar = evt.keyCode;
    } else {
        mchar = evt.charCode || evt.keyCode;
    }
    if (mchar == 13) {
        if (IE) {
            event.returnValue=false;
            event.cancel = true;
        }
        if (sym_submit) {
            eval(method);
        } else {
            return false;
        }
	}
}

maxLength=1000; 
var re = /\  /;

function checkEvent(myevent, is_numeric, no_spaces) {
	if (!(IE)) {
		if (myevent.keyCode == 13) {
			myevent.preventDefault();
		}
	}
	var mchar = 0;
	if (IE) {
		mchar = myevent.keyCode;
	} else {
		mchar = myevent.charCode;
	}
	if (mchar != 0) {
	 	if (is_numeric) {
			if ((mchar == 43) ||
                (mchar == 46) || ((mchar > 47) && (mchar < 58)) ||
				(mchar == 45)) {
				return true;
			} else {
				return false;
			}
		} else if (no_spaces) {
			if ((((mchar > 47) && (mchar < 91)) ||
				 ((mchar > 96) && (mchar < 123)) ||
				  (mchar == 33) ||
                  (mchar == 45) ||
				  (mchar == 44) ||
				  (mchar == 46) ||
				  (mchar == 0)) && 
				(!((mchar > 57) && (mchar < 63)))) {
				return true;
			} else {
				return false;
			}
		} else if ((((mchar > 47) && (mchar < 91)) ||
		     ((mchar > 96) && (mchar < 123)) ||
		 	  (mchar == 32) ||
			  (mchar == 33) ||
			  (mchar == 44) ||
			  (mchar == 46) ||
			  (mchar == 0)) && 
			(!((mchar > 57) && (mchar < 63)))) {
			return true;
		} else {
			return false;
		}
	} else {
		return true;
	}
}

function killUnwantedKeys(taObj, myevent, is_numeric, no_spaces) {
  if (checkEvent(myevent, is_numeric, no_spaces)) {	
  	taLength=taObj.value.length; // look at current length
  	if (taLength>maxLength) { // clip characters
  	  taObj.value = taObj.value.substring(0,maxLength);
  	}
  	taLength=taObj.value.length; 
  	oldLength=0;
  	while (oldLength<taLength) { //validate characters
	    tChar=taObj.value.charAt(oldLength);
		tChar=taObj.value.charAt(oldLength-1)+tChar; 
	   	if (re.test(tChar)) {
	 	    tStr = taObj.value; 
			tail = tStr.substring(oldLength+1);
			taObj.value = tStr.substring(0,oldLength) + tail; 
			taLength--;
		} else {
			oldLength++;
		}
	}
  } else {
	if (IE) {
		myevent.returnValue = false;
	} else {
		myevent.preventDefault();
	} 
  }
}

var IndexArray = new Array();

function RemoveRec(itemindex) {
	var itm = findObj("itemindex"); 
	var index_array_length = IndexArray.length;
	for (i=0; i <= index_array_length; i++) {
		if (IndexArray[i] == itemindex) {
			IndexArray.splice(i, 1);
		}
	}
	itm.value = IndexArray;
}

function AddRec(itemindex) {
	var itm = findObj("itemindex"); 
	for (i=0; i<IndexArray.length; i++) {
		if (IndexArray[i] == itemindex) {
			return "";	
		}
	}
	IndexArray.push(itemindex);
	itm.value = IndexArray;
}	

function onSelectCheckBoxChange(obj, cnt) {
    if (obj.checked) {
        AddRec(cnt);
    } else {
        RemoveRec(cnt);
    }
}

function selectAll(obj, cnt) {
    for (i = 1; i <= cnt; i++) {
        select_checkbox = findObj("select_"+i);
        if (select_checkbox != null) {
            select_checkbox.checked = obj.checked;
        }
    }
    updateItemIndex(cnt);
}

function updateItemIndex(cnt) {
    var itemindex = findObj("itemindex");
    var index = "";
    var add_comma = false;
    if (itemindex != null) {
        itemindex.value = "";
        for (i = 1; i <= cnt; i++) {
            select_checkbox = findObj("select_"+i);
            if (select_checkbox != null) {
                if (select_checkbox.checked) {
                    index += (add_comma ? "," : "")+i;
                    add_comma = true;
                }
            }
        }
    }
    itemindex.value = index;
}

function editItem(mdowhat) {
	var dowhat = findObj("dowhat");
	var itm = findObj("itemindex");
	if ((dowhat != null) && (itm != null)) {
		dowhat.value = mdowhat;
		itm.value = IndexArray;
		if (mdowhat == "edit") {
			document.frm.action = "getmodule.php?id=ajax_cartposting.php";
		}
		document.frm.submit();
	}		
}


function validateColourSize(colours_id_field, sizes_id_field, enable_colours, enable_sizes) {
	var colours_r = "";
	var sizes_r = "";
	var colours_id = findObj(colours_id_field);
	var sizes_id = findObj(sizes_id_field);
	if (colours_id != null) {
		if (enable_colours) {
			colours_r = "R";
			if (colours_id.value == 0) {
				colours_id.value = "";
			}
		}
        if (!(validateForm(colours_id_field, '', colours_r))) {
            return false;
        }

    }
    if (sizes_id != null) {
		if (enable_sizes) {
			sizes_r = "R";
			if (sizes_id.value == 0) {
				sizes_id.value = "";
			}
		}
        if (!(validateForm(sizes_id_field, '', sizes_r))) {
            return false;
        }
	}
	return true;
}

function moreInfo(layer_name) {
	var mlayer = findObj(layer_name);
	if (mlayer) {
		if ((mlayer.style.visibility == "hidden") || (mlayer.style.visibility == "")) {
			mlayer.style.visibility = "visible";
			mlayer.style.height = "60px";
		} else {
			mlayer.style.visibility = "hidden";
			mlayer.style.height = "0px";
		}
	} 
}

function getCart(sel, mdowhat, mlayer, mlayer2) {
	getCartMain(sel, mdowhat, mlayer);
}

function selectColour(mcolours_id, mcolour_chart_id, mdowhat) {
	var colours_id = findObj("colours_id");
	var colour_chart_id = findObj("colour_chart_id");
	mcolours_id = (mcolours_id == "" ? 0 : mcolours_id);
	mcolour_chart_id = (mcolour_chart_id == "" ? 0 : mcolours_id); 
	colours_id.value = mcolours_id;
	colour_chart_id.value = mcolour_chart_id;
	getColours('select', '<?= $code ?>', mcolours_id, mcolour_chart_id, 'selected_colour_layer');
}

/*----------------Discounts-----------------*/

var DiscountCodeStructureArray = new Array();
var DiscountSubCategoryStructureArray = new Array();
var DiscountCategoryStructureArray = new Array();
var DiscountEverythingStructureArray = new Array();

function objDiscount(discount, default_discount, discount_id, discount_type, apply_condition_on) {
    this.discount = discount;
    this.default_discount = default_discount;
    this.discount_id = discount_id;
    this.discount_type = discount_type;
    this.apply_condition_on = apply_condition_on
}

function GetDiscount(code, category_id, subcategory_id, condition) {
	var DiscountStructure = null;
	var discount = 0;
    var default_discount = 0;
    var discount_id = 0;
    var discount_type = 0;
    var apply_condition_on = "any"
	for (i=0; i < DiscountCodeStructureArray.length; i++) {
		if (DiscountCodeStructureArray[i].code == code) {
			DiscountStructure = DiscountCodeStructureArray[i];
			break;
		}
	}
	if (!DiscountStructure) {
		for (i=0; i < DiscountSubCategoryStructureArray.length; i++) {
			if (DiscountSubCategoryStructureArray[i].subcategory == subcategory_id) {
				DiscountStructure = DiscountSubCategoryStructureArray[i];
				break;
			}
		}
	}
	if (!DiscountStructure) {
		for (i=0; i < DiscountCategoryStructureArray.length; i++) {
			if (DiscountCategoryStructureArray[i].category == category_id) {
				DiscountStructure = DiscountCategoryStructureArray[i];
				break;
			}
		}
	}
	if (!DiscountStructure) {
		for (i=0; i < DiscountEverythingStructureArray.length; i++) {
			if (DiscountEverythingStructureArray.length > 0) {
				DiscountStructure = DiscountEverythingStructureArray[i];
				break;
			}
		}
	}
	if (DiscountStructure) {
		for (i=0; i < DiscountStructure.discountRecords.length; i++) {
			if (Number(condition) >= Number(DiscountStructure.discountRecords[i].condition)) {
				discount = DiscountStructure.discountRecords[i].discount;
                default_discount = DiscountStructure.discountRecords[i].default_discount;
                discount_id = DiscountStructure.discountRecords[i].discount_id;
                discount_type = DiscountStructure.discountRecords[i].discount_type;
                apply_condition_on = DiscountStructure.discountRecords[i].apply_condition_on;
			}
		}
	} else {
		discount = 0;
        default_discount = 0;
	}
    Discount = new objDiscount(discount, default_discount, discount_id, discount_type, apply_condition_on);
	return Discount;
}

function objDiscountRecord(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on) {
    this.discount_id = mdiscount_id;
    this.discount_type = mdiscount_type;
	this.condition = mcondition;
	this.discount = mdiscount;
    this.default_discount = mdefault_discount;
    this.apply_condition_on = mapply_condition_on;
}

function objDiscountCodeStructure(mcode) {
	var thisObj = this;
	this.code = mcode;
	this.discountRecords = new Array();
	this.addDiscountRecord = function(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on) {
		var discountRecord = new objDiscountRecord(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on);
		thisObj.discountRecords.push(discountRecord);
	}
}

function objDiscountSubcategoryStructure(msubcategory) {
	var thisObj = this;
	this.subcategory = msubcategory;
	this.discountRecords = new Array();
	this.addDiscountRecord = function(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on) {
		var discountRecord = new objDiscountRecord(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on);
		thisObj.discountRecords.push(discountRecord);
	}
}

function objDiscountCategoryStructure(mcategory) {
	var thisObj = this;
	this.category = mcategory;
	this.discountRecords = new Array();
	this.addDiscountRecord = function(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on) {
		var discountRecord = new objDiscountRecord(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on);
		thisObj.discountRecords.push(discountRecord);
	}
}

function objDiscountEverythingStructure() {
	var thisObj = this;
	this.discountRecords = new Array();
	this.addDiscountRecord = function(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on) {
		var discountRecord = new objDiscountRecord(mdiscount_id, mdiscount_type, mcondition, mdiscount, mdefault_discount, mapply_condition_on);
		thisObj.discountRecords.push(discountRecord);
	}
}

var DiscountConditionsStructureArray = new Array();

function objDiscountConditionRecord(mcode, mqty_level, mvalue) {
	this.code = mcode;
	this.qty_level = mqty_level;
    this.value = mvalue;
}

function objDiscountConditionsStructure(discount_id, discount_type, code, qty_level, value) {
    this.discount_id = discount_id;
    this.discount_type = discount_type;
    this.code = code;
    this.qty_level = qty_level;
    this.value = value;
}

var ShoppingCartArray = new Array();

function objShoppingCart(code, qty_total, line_total) {
    this.code = code;
    this.qty_total = qty_total;
    this.line_total = line_total;
}

function CheckDiscountConditions(discount_id, discount_type, apply_condition_on) {
    var evaluation = (apply_condition_on == "all");
    var FilteredDiscountConditionRecord = new Array();
    var FilteredShoppingCart = new Array();
    for (i=0; i < DiscountConditionsStructureArray.length; i++) {
        if ((DiscountConditionsStructureArray[i].discount_id == discount_id) && (DiscountConditionsStructureArray[i].discount_type == discount_type)) {
            DiscountConditionsStructure = DiscountConditionsStructureArray[i];
            FilteredDiscountConditionRecord.push(DiscountConditionsStructure);
        }
    }

   if (FilteredDiscountConditionRecord.length > 0) {
        for(m = 0; m < FilteredDiscountConditionRecord.length; m++) {
            code = FilteredDiscountConditionRecord[m].code;
            qty_level = FilteredDiscountConditionRecord[m].qty_level;
            value = FilteredDiscountConditionRecord[m].value;
            for (k = 0; k < ShoppingCartArray.length; k++) {
                if (code == ShoppingCartArray[k].code) {
                    FilteredShoppingCart.push(ShoppingCartArray[k]);
                }
            }
        

            if (FilteredShoppingCart.length > 0) {
                for (l = 0; l < FilteredShoppingCart.length; l++) {
                    items_total = FilteredShoppingCart[l].qty_total;
                    line_total = FilteredShoppingCart[l].line_total;
                    if (apply_condition_on == "any") {
                        if ((line_total >= value) && (items_total >= qty_level)) {
                            return true;
                        }
                    }
                    if (apply_condition_on == "all") {
                        evaluation = ((line_total >= value) && (items_total >= qty_level)) && (evaluation);
                        if (!evaluation) {
                            return false;
                        }
                    }
                }
            } else if (apply_condition_on == "all") {
                return false;
            }
        }
        return evaluation;
    } else {
        return true;
    }
}

/*-------------------End--------------------*/
/*---------------Validation------------------*/

function validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) { 
		test=args[i+2]; 
		val=findObj(args[i]);
		if (val) { 
			nm=val.name; 
			if (val.alt) {
				msg=val.alt;
			} else {
				msg="";
			}
			if ((val=val.value)!="") {
				if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
				} else if (test!='R') {	
					num = parseFloat(val);
					if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
					if (test.indexOf('inRange') != -1) { 
						p=test.indexOf(':');
						min=test.substring(8,p); 
						max=test.substring(p+1);
						if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					} 
					
				} 
			} else if (test.charAt(0) == 'R') errors += (msg != '' ? '- '+msg+'\n' :'- '+nm+' is required.\n'); 
		}
	} 
	if (errors) {
		alert('The following error(s) occurred:\n'+errors);
	} 
	return (errors == '');
}

/*------------------END----------------------*/
/*-----------------FaceBook----------------------*/

function fbs_click() {
	u=location.href;
	t=document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}

/*------------------END----------------------*/
/*--------- REMEMBER ME CHECKBOX ------------*/

function newCookie(name,value,days) {
 var days = 1;   // the number at the left reflects the number of days for the cookie to last
                 // modify it according to your needs
 if (days) {
   var date = new Date();
   date.setTime(date.getTime()+(days*24*60*60*1000));
   var expires = "; expires="+date.toGMTString(); }
   else var expires = "";
   document.cookie = name+"="+value+expires+"; path=/"; }

function readCookie(name) {
   var nameSG = name + "=";
   var nuller = '';
  if (document.cookie.indexOf(nameSG) == -1)
    return nuller;

   var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
  if (c.indexOf(nameSG) == 0) return c.substring(nameSG.length,c.length); }
    return null; }

function eraseCookie(name) {
  newCookie(name,"",1); }

function saveLogin(path) {
	var email = findObj("Email");
	var password = findObj("Password");
    newCookie('esolve_Email_'+path, email.value);     // add a new cookie as shown at left for every
    newCookie('esolve_Password_'+path, password.value);   // field you wish to have the script remember
}

function saveLoginNoPassword(path) {
	var email = findObj("Email");
    newCookie('esolve_Email_'+path, email.value);     // add a new cookie as shown at left for every
}

function deleteLogin(path) {
	eraseCookie('esolve_Email_'+path);   // make sure to add the eraseCookie function for every field
	eraseCookie('esolve_Password_'+path);
	
	var email = findObj("esolve_Email");
	var password = findObj("esolve_Password");
	email.value = '';   // add a line for every field
	password.value = ''; 
}

function restoreLogin(path) {
	var email = findObj("Email");
	var password = findObj("Password");	
	email.value = readCookie("esolve_Email_"+path);  // Change the names of the fields at right to match the ones in your form.
	password.value = readCookie("esolve_Password_"+path);
}

/*------------------END----------------------*/
/*-----------------AJAX----------------------*/

function ajaxObject(url, layer, callbackFunction) {
  var that=this;      
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;                          
    if (window.XMLHttpRequest) {              
      that.AJAX=new XMLHttpRequest();              
    } else {                                  
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }                                             
    if (that.AJAX==null) {                             
      return false;                               
    } else {
      that.AJAX.onreadystatechange = function() {  
        if (that.AJAX.readyState==4) {             
          that.updating=false;
          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML, layerCall);        
          that.AJAX=null;                                         
        }                                                      
      }                                                        
      that.updating = new Date();                              
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.setRequestHeader("Content-Length", passData.length);
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());
        that.AJAX.open("GET", uri, true);                             
        that.AJAX.send(null);                                         
      }              
      return true;                                             
    }                                                                           
  }
  var urlCall = url; 
  var layerCall = layer;       
  this.callback = callbackFunction || function () { };
}

function findScriptandExecute(str) {
    var index_start_1 = str.indexOf("<script", 0);
    var index_end_1 = str.indexOf(">", index_start_1)+1;
    var index_start_2 = str.indexOf("</script", 0);
    var index_end_2 = str.indexOf(">", index_start_2)+1;
    var script = "";
    if ((index_end_1 > 0) && (index_start_2 > 0)) {
       script = str.substring(index_end_1, index_start_2);
    }
    try {
        if (script != "") {
            eval(script, window);
        }
    } catch (exception) {
        alert("Exception: "+exception.message);
    }
}

function updateLayer(responseText, status, responseXML, mlayer) {
	var layer = document.all ? document.all(mlayer) : document.getElementById(mlayer);
	if (layer) {
        findScriptandExecute(responseText);
		layer.innerHTML = responseText;
	}
}

function setLoadingImage(mlayer) {
	var layer = document.all? document.all(mlayer): document.getElementById(mlayer);
	if (layer) {
		layer.innerHTML = "<img src=\"images/ajax-loader.gif\" />";
	}
}

function getStock(mdowhat, mlayer, code, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_stock.php&dowhat="+mdowhat+"&code="+code+"&method="+method, 'GET');
}

function getExtendedStockSearch(mdowhat, mlayer, searchphrase,
                                area_of_use_id,
                                type_of_material_id,
                                type_of_use_id,
                                descriptive_department_id,
                                supplier_searchphrase,
                                page,
                                from_record,
                                show_records,
                                total_records,
                                sort,
                                method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_extended_stock_search.php&dowhat="+mdowhat+"&searchphrase="+searchphrase+"&area_of_use_id="+area_of_use_id+"&type_of_material_id="+type_of_material_id+"&type_of_use_id="+type_of_use_id+"&descriptive_department_id="+descriptive_department_id+"&supplier_searchphrase="+supplier_searchphrase+"&page="+page+"&from_record="+from_record+"&show_records="+show_records+"&total_records="+total_records+"&sort="+sort+"&method="+method, 'GET');
}

function getShowCart(mdowhat, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_showcart.php&dowhat="+mdowhat+"&method="+method, 'GET');
}

function getCartMain(sel, mdowhat, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	var code = findObj("code_"+sel);
	var qty = findObj("qty_"+sel);
	var price = findObj("price_"+sel);
	var sizes_id = findObj("sizes_id_"+sel);
	var colours_id = findObj("colours_id_"+sel);
	xmlHttp.update("id=ajax_cartposting.php&dowhat="+mdowhat+"&code="+(code != null ? code.value: "")+"&qty="+(qty != null ? qty.value : "")+"&price="+(price != null ? price.value : "")+(sizes_id != null ? "&sizes_id="+sizes_id.value : "")+(colours_id != null ? "&colours_id="+colours_id.value : ""), 'GET');
} 

function getCartMaxi(mlayer) {
    if (findObj(mlayer)) {
        setLoadingImage(mlayer);
        xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
        xmlHttp.update("id=ajax_maxicart.php", "GET");
    }
}

function getCartMini(mlayer) {
    if (findObj(mlayer)) {
        setLoadingImage(mlayer);
        xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
        xmlHttp.update("id=ajax_minicart.php", "GET");
    }
}

function getSubCategories(mid, msubcategory_id, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_getsubcategories.php&mid="+mid+"&subcategory_id="+msubcategory_id+"&method="+method, "GET");
}

function getStockCategorySubCategoryLinks(dowhat, mlayer, code, category_id, subcategory_id, linked_stock_category_subcategory_id, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_linked_stock_categories_subcategories.php&dowhat="+dowhat+"&code="+code+"&category_id="+category_id+"&subcategory_id="+subcategory_id+"&linked_stock_category_subcategory_id="+linked_stock_category_subcategory_id+"&method="+method, "GET");
}

function getNews(mdowhat, news_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_news.php&dowhat="+mdowhat+"&news_id="+news_id, "GET");
}

function getSellprices(mdowhat, code, sellprice, sellprice_description, sellprices_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_sellprices.php&dowhat="+mdowhat+"&code="+code+"&sellprice="+sellprice+"&sellprice_description="+sellprice_description+"&sellprices_id="+sellprices_id, "GET");
}

function getSizes(mdowhat, code, sizes_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_sizes.php&dowhat="+mdowhat+"&code="+code+"&sizes_id="+sizes_id, "GET");
}

function getColours(mdowhat, code, colours_id, colour_chart_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_colours.php&dowhat="+mdowhat+"&code="+code+"&colours_id="+colours_id+"&colour_chart_id="+colour_chart_id, "GET");
}

function getColourChart(mdowhat, colour_chart_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_colours_chart.php&dowhat="+mdowhat+"&colour_chart_id="+colour_chart_id, "GET");
}

function getDescriptiveDepartment(mdowhat, department, descriptive_department_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_descriptive_department.php&dowhat="+mdowhat+"&department="+department+"&descriptive_department_id="+descriptive_department_id, "GET");
}

function getAreaOfUse(mdowhat, area, area_of_use_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_area_of_use.php&dowhat="+mdowhat+"&area="+area+"&area_of_use_id="+area_of_use_id, "GET");
}

function getTypeOfMaterial(mdowhat, material, type_of_material_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_type_of_material.php&dowhat="+mdowhat+"&material="+material+"&type_of_material_id="+type_of_material_id, "GET");
}

function getTypeOfUse(mdowhat, used_in, type_of_use_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_type_of_use.php&dowhat="+mdowhat+"&used_in="+used_in+"&type_of_use_id="+type_of_use_id, "GET");
}

function getDiscount(dowhat, mid, discount_type, code, subcategory_id, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_discount.php&dowhat="+dowhat+"&mid="+mid+"&discount_type="+discount_type+"&code="+code+"&subcategory_id="+subcategory_id+"&method="+method, "GET");
}

function getStockLinks(dowhat, mid, code, linked_code, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_stock_links.php&dowhat="+dowhat+"&mid="+mid+"&code="+code+"&linked_code="+linked_code+"&method="+method, "GET");
}

function getStockSupplierLinks(dowhat, mid, code, supplier_id, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_stock_supplier_links.php&dowhat="+dowhat+"&mid="+mid+"&code="+code+"&supplier_id="+supplier_id+"&method="+method, "GET");
}

function getPopularStock(dowhat, stock_code, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_stock_popular.php&dowhat="+dowhat+"&stock_code="+stock_code, "GET");
}

function getSpecials(dowhat, specials_id, mlayer, method) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_specials.php&dowhat="+dowhat+"&specials_id="+specials_id+"&method="+method, "GET");
}

function getSpecialsOnStock(dowhat, specials_id, code, category_id, subcategory_id, discount_type, discount, qty_level, value, discount_id, specials_on_stock_id, specials_on_category_id, specials_on_sub_category_id, specials_on_everything_id, mlayer) {
    setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_stock_specials.php&dowhat="+dowhat+"&specials_id="+specials_id+"&code="+code+"&category_id="+category_id+"&subcategory_id="+subcategory_id+"&discount_type="+discount_type+"&discount="+discount+"&qty_level="+qty_level+"&value="+value+"&discount_id="+discount_id+"&specials_on_stock_id="+specials_on_stock_id+"&specials_on_category_id="+specials_on_category_id+"&specials_on_stock_id="+specials_on_sub_category_id+"&specials_on_everything_id="+specials_on_everything_id, "GET");
}

function getSendMail(dowhat, from, to, message, riv_text, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	uri = "id=ajax_sendmail.php&dowhat="+dowhat+"&from="+from+"&to="+to+"&message="+message+"&riv_text="+riv_text;
	xmlHttp.update(uri, "GET");
}

function getRIV(mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_riv.php", "GET");
}

function getCurrency(mdowhat, currencies_id, rss_url, method, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_currencies.php&dowhat="+mdowhat+"&currencies_id="+currencies_id+"&rss_url="+rss_url+"&method="+method, "GET");
}

function getShippingCosts(mdowhat, shipping_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);	
	xmlHttp.update("id=ajax_get_shipping_costs.php&dowhat="+mdowhat+"&shipping_id="+shipping_id, "GET");
}

function getStockImage(input) {
	//function to add image
	//imagePath = prompt('Enter Image URL:', 'http://');
    ShowMessage(1, '<div id="insert_image_layer"></div>', true, 400, 500);
    imagePath = getImagePath("insert_image_layer", input.name, 'stock/thumb/', 0);
}

function setStockImagePath(imagePath, input) {
    var input = findObj(input);
	if ((imagePath != null) && (imagePath != "")) {
        input.value = imagePath;
	}
    RemoveMessage(1, false);
}

function getImagePath(mlayer, target, directory, is_rte) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_image_path.php&target="+target+"&directory="+directory+"&is_rte="+is_rte, "GET");
}

function getUploadImage(mlayer, mimage_id_obj_name, mimage_obj_name, mproperty_rooms_id, mimage_id) {
	setLoadingImage(mlayer);
	var image_obj_name = findObj("image_obj_name");
	var image_id_obj_name = findObj("image_id_obj_name");
	var image_layer = findObj("image_layer");
	var image_id = findObj("image_id");
	var frm = findObj("frm");
	
	if (image_obj_name != null) {
		image_obj_name.value = mimage_obj_name;
	}

	if (image_id_obj_name != null) {
		image_id_obj_name.value = mimage_id_obj_name;
	}

	if (image_layer != null) {
		image_layer.value = mlayer;
	}
	
	if (image_id != null) {
		image_id.value = mimage_id;	
	}

	if (frm) {
		frm.action = "upload.php";
		frm.method = "POST";
		frm.target = "image_iframe";
		frm.submit();
	}
	
	if (frm) {
		frm.action = "";
		frm.method = "POST";
		frm.target = "_self";
	}	
}

function getDeleveryMethods(mdowhat, country, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
	xmlHttp.update("id=ajax_delevery_methods.php&dowhat="+mdowhat+"&country="+country, "GET");
}

function getUserClientLinks(mdowhat, client_id, user_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
    xmlHttp.update("id=ajax_user_client_links.php&dowhat="+mdowhat+"&client_id="+client_id+"&user_id="+user_id, "GET");
}

function getClient(mdowhat, client_id, mlayer) {
	setLoadingImage(mlayer);
	xmlHttp = new ajaxObject('getmodule.php', mlayer, updateLayer);
    xmlHttp.update("id=ajax_client.php&dowhat="+mdowhat+"&client_id="+client_id, "GET");
}

//Used in itemdetails.inc.php, showcart.php and ajax_showcart.php
function submitItem(sel, mdowhat, document, colours_id_field, sizes_id_field, enable_colours, enable_sizes, mcontent_basket) {
	if (validateColourSize(colours_id_field, sizes_id_field, enable_colours, enable_sizes)) {
		if ((mdowhat == "remove") || (mdowhat == "wish_remove")) {
			mcnt = findObj("mcnt");
			mcnt.value = sel;
            document = 'getmodule.php?id=ajax_cartposting.php';
			mySubmit(mdowhat, document);
		} else {
			if (mcontent_basket == "post") {
                document = 'getmodule.php?id=ajax_cartposting.php';
                mySubmit(mdowhat, document);
            } else {
                if (mcontent_basket != "") {
                    //This layer will be populated
                } else {
                    mcontent_basket = "content_basket";
                    ShowMessage(1,'<div id="'+mcontent_basket+'"></div>', true, 250,250);
                }
                getCart(sel, mdowhat, mcontent_basket, 'mini_basket');
            }
        }
	}
}

function printThis(layer_name) {
	var a = window.open('','','width=850,height=900');
	var mlayer = findObj(layer_name);
	a.document.open("text/html");
	a.document.write('<HTML XMLNS:IE>');
	a.document.write("<HEAD>");
	a.document.write('<IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">');
	a.document.write('<LINK HREF="css/styles.css" REL="stylesheet" TYPE="text/css">');
	a.document.write('</HEAD>');
	a.document.write('<BODY style="background-color:#FFFFFF">');
	a.document.write(mlayer.innerHTML);
	a.document.write('</BODY>');
	a.document.write('</HTML>');
	a.print();
	a.document.close();
}

function mySubmit(mdowhat, maction) {
	var dowhat = findObj("dowhat");
	dowhat.value = mdowhat;
	if ((maction != null) || (maction = "undefined")) {
		document.frm.action = maction;
	}
	document.frm.submit()
}

function document_load() {
	/*Place all functions for javascript that must
	 *only execute after document has finnished
	 *loading...
	*/
    getBrowserCompatibility();
}



/*------------------------------------------------*/
/*---------------login.php-------------------*/

function disall() {
	var btnLogin = findObj("btnLogin");
	var btnMail = findObj("btnMail");
	var btnNew = findObj("btnNew");
	var btnConfirm = findObj("btnConfirm");
	if (btnLogin) {
		btnLogin.style.visibility = "hidden";
	}
	if (btnMail) {
		btnMail.style.visibility = "hidden";
	}
	if (btnNew) {
		btnNew.style.visibility = "hidden";
	}
	if (btnConfirm) {
		btnConfirm.style.visibility = "hidden";
	}
}

function newuser() {
 disall();
 document.frm.action = "users.php";
 document.frm.submit();
}

function login() {
	disall();
	var Submit = findObj("Submit");
	Submit.value = "login";
	document.frm.submit();
}

function funcMail(str) {
	email = findObj("Email");
	if (email.value == "") { 
		ShowMessage(1,"Please enter an email address first and then click on this link", 1);
	} else {
		disall();
		document.frm.Submit.value = str;
		document.frm.submit();
	}
}

function checkReturnKey(evt) {
	if(evt.keyCode==13){
		login();
	}
	return true;
}

/*------------------login.php END--------------------*/
/*------------------users.php--------------------*/

function validemail(fld) {
  v = fld.value;
  if (v == "root") {
      return true;
  } else {
      i = v.indexOf("@");
      if ((i >= 1) && (i != v.length-1)) {
        return true;
      } else {
        return false;
      }
  }
}

function checkdata(is_logged_in) {
	var telnumber = findObj('telnumber');
	var title = findObj('title');
	var email = findObj('email');
	var repeat_email = findObj('repeat_email');

	if (!validemail(email)) {
		alert("Please enter a valid email address");
		email.focus();
		return false;
	} else {
		if (!is_logged_in) {
			if (repeat_email != null) {
				if (email.value != repeat_email.value) {
					alert("Please make sure that you have correctly repeated the email address.");
					repeat_email.focus();
				}
			}
		}
	}

	var pass1 = findObj("pass1");
	var pass2 = findObj("pass2");
	if (!is_logged_in) {
		if (pass1.value.length == 0) {
			alert("Please enter a valid password");
			pass1.focus();
			return false;
		} else if(pass1.value.length < 4) {
			alert("Please enter a password that conatins at least 4 characters");
			pass1.focus();
			return false;
        }
		if (pass1.value != pass2.value) {
			alert("Passwords do not match");
			pass1.focus();
			return false;
		} 
	}
	
	if (title.value == 0) {
		alert("Please select a title");
		title.focus();
	} else if (validateForm('firstname','','R',
							'surname','','R')) {
		return true
	} else {
			return false;
	}
}

var in_execution = false;
function funcCreate(mdowhat, is_logged_in, obj) {
	if (in_execution) { 
		return false;
	}
	in_execution = true;
	var readterm = findObj("readterm");
	var dowhat = findObj("dowhat");
	if ((readterm != null) && (dowhat != null)) {
		if (mdowhat == 'edit') {
			if (checkdata(is_logged_in)) {
				mySubmit(mdowhat, '');
			}
		} else {
			if (readterm.value == 1) {
				if (readterm.checked) {
					if (checkdata(is_logged_in)) {
						mySubmit(mdowhat, '');
					}
				} else {
					alert("Please confirm that you have read and understood the terms and conditions by checking the tick box provided")
				}
			} else {
				if (checkdata(is_logged_in)) {
					mySubmit(mdowhat, '');
				}
			}
		}	
	}
	in_execution = false;
}
/*------------------users.php END--------------------*/
/*------------------amendorders.php--------------------*/

function validateOrderTotal(obj) {
	if (obj != null) {
		if (isNaN(obj.value)) {
			alert("The please enter a valid number");
			obj.focus();
			return false;			
		} else {
			if (obj.value == 0) {
				var answer = confirm("The external order total is Zero?");
				if (answer){
					return true;
				} else{
					obj.focus();
					return false;
				}
			} else if (obj.value < 0) {
				alert("The external order total must be greater than zero");
				obj.value = 0;
				obj.focus();
				return false;				
			}
		}
	}
	return true;
}

function saveOrder(mdowhat, menable_force_external_order_number) {
	if (menable_force_external_order_number) {
		if (validateOrderTotal(findObj("external_order_total"))) {
			mySubmit(mdowhat, '');
		}
	} else {
		mySubmit(mdowhat, '');
	}
}
/*------------------amendorders.php END--------------------*/
/*------------------system setup---------------------------*/

function checkEnableAccountAppovalNotification() {
    var enable_account_approval = findObj("enable_account_approval");
    var enable_account_approval_notification = findObj("enable_account_approval_notification");
    if (enable_account_approval.checked) {
        enable_account_approval_notification.disabled = false;
    } else {
        enable_account_approval_notification.disabled = true;
        enable_account_approval_notification.checked = false;
    }
}

function checkEnableEmailAuthentication() {
    var enable_email_authentication = findObj("enable_email_authentication");
    var enable_email_authentication_on_order = findObj("enable_email_authentication_on_order");
    if (enable_email_authentication.checked) {
        enable_email_authentication_on_order.checked = false;
    }
    if (enable_email_authentication_on_order.checked) {
        enable_email_authentication.checked = false;
    }
}

/*------------------system setup END-----------------------*/

