// JavaScript Document - prompts.js, page load bits
function conf(titel,url){
	var conf_box=confirm(titel);
	if (conf_box==true){ 
		window.location = url;
	}
}
//page bits here
hs.showCredits = 0;
hs.graphicsDir = '/highslide/graphics/';
hs.outlineType = 'rounded-white';
hs.wrapperClassName = 'no-footer draggable-header';
hs.align = 'center';
hs.dimmingOpacity = 0.6;
hs.dimmingDuration = 200;
hs.fadeInOut = false;
hs.blockRightClick = true;
hs.preserveContent = false;
hs.Expander.prototype.onAfterExpand = function (sender) {
	if(document.getElementById('cqty')){
			//sender is hs.expand instance
			
			var newQty = document.getElementById('cqty');
			newQty = newQty.innerHTML;
			var newPrice = document.getElementById('cprice');
			newPrice = newPrice.innerHTML;
			if(newQty==1){
				newQty = newQty+' item';	
			}else{
				newQty = newQty+' items';
			}
			newPrice = '&pound;'+newPrice;
			document.getElementById('cartPrice').innerHTML = newPrice;	
			document.getElementById('cartQty').innerHTML = newQty;	
	}
	$$('.ellipsis').each(ellipsis);	   
}
function add_b_cat(el,id){	
	vars = 'prod_id='+id+'&qty=1&add1=0&add2=0&add3=0&add4=0';
	var sub_url = '/basketadd.php?'+vars;
	//alert(sub_url);
	return hs.htmlExpand(el, {objectType: 'ajax', width: 480, height:235, src:sub_url, preserveContent:false});
}

function add_b(el,id){
	var qty = $j("#qty-field").val();
	var drops = Array();
	for(var x=1;x<=4;x++){
		drops[x] = '';
		if(document.getElementsByName('prod_op_'+x+'_0')[0]){
			drop_el = document.getElementsByName('prod_op_'+x+'_0')[0];
			drops[x] = drop_el.value;
		}
		
	}
	vars = 'prod_id='+id+'&qty='+qty+'&add1='+drops[1]+'&add2='+drops[2]+'&add3='+drops[3]+'&add4='+drops[4]+'';
	
	return hs.htmlExpand(el, {objectType: 'ajax', width: 480, height:235, src:'/basketadd.php?'+vars, preserveContent:false});
}
function add_b_multi(el,id){
	var p=0;
	var drops = Array();
	vars = '';
	var chCount=0;
	while($j("#addProd"+p).length>0){
		if($j("#addProd"+p).is(':checked')){
			qty = $j("#qty_"+p).val();
			for(var x=1;x<=4;x++){
				drops[x] = '';
				if(document.getElementsByName('prod_op_'+x+'_'+p)[0]){
					drop_el = document.getElementsByName('prod_op_'+x+'_'+p)[0];
					drops[x] = drop_el.value;
				}
			}
			if(chCount>0){
				vars += '&';
			}
			vars += 'prod_id_'+chCount+'='+id+'&qty_'+chCount+'='+qty+'&add1_'+chCount+'='+drops[1]+'&add2_'+chCount+'='+drops[2]+'&add3_'+chCount+'='+drops[3]+'&add4_'+chCount+'='+drops[4]+'';
			chCount++;
		}
		p++;
	}
	//alert(vars);
	if(chCount==0){
		alert("Please select an option to add to your basket"); 
		return false;
	}else{
		return hs.htmlExpand(el, {objectType: 'ajax', width: 480, height:203, src:'/basketadd_multi.php?'+vars, preserveContent:false});
	}
}
function add_b_bundle(el,id){
	
	vars = 'prod_id_0='+id+'&qty_0=1&add1=0&add2=0&add3=0&add4=0&bundle=1';
	//alert(vars);
	return hs.htmlExpand(el, {objectType: 'ajax', width: 480, height:203, src:'/basketadd_multi.php?'+vars, preserveContent:false});
}

//basket
var requestU = makeObject();
var request2 = makeObject();
var updated;
var updated2;
var loadup = false;
function update_basket(id, field, change){
	document.getElementById('cart_loading').style.display = 'block';
	document.getElementById('cart_data').innerHTML='';
	
	updated = false;
	loadup = false;
	var params = 'id='+id+'&fi='+field+'&ch='+change;
	requestU.open('POST', '/update_basket.php');
	requestU.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	requestU.setRequestHeader("Content-length", params.length);
	requestU.setRequestHeader("Connection", "close");
	
	requestU.onreadystatechange = state_change_update;
	
	requestU.send(params);
}
var answer_a = '';
function state_change_update(){
	if(requestU.readyState == 1){
		if(loadup!==true){
			
			loadup=true;
		}
	}
	if(requestU.readyState == 4){
		if(updated!==true){
			answer_a = requestU.responseText;
			reload_cart();
			updated = true;
		}
	}
}
var first_up_done = false;
function reload_cart(){
	updated2 = false;
	if(first_up_done==false){
		vars = 'ses='+global_session+'&errors='+php_errors+'&cont_link='+cont_link;
		first_up_done=true;
	}else{
		vars = 'ses='+global_session+'&cont_link='+cont_link+'&uperrors='+answer_a;;
	}
	request2.open('POST', 'cart_data.php');
	request2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	request2.setRequestHeader("Content-length", vars.length);
	request2.setRequestHeader("Connection", "close");
	request2.onreadystatechange = state_change_cart;
	request2.send(vars);
}
function state_change_cart(){
	if(request2.readyState == 1){
		if(loadup!==true){
			loadup=true;
		}
	}
	if(request2.readyState == 4){
		if(updated2!==true){
			var answer = request2.responseText;
			document.getElementById('cart_data').innerHTML=answer;
			document.getElementById('cart_loading').style.display = 'none';
			evalInside(document.getElementById('drop_java').innerHTML);
			updated2 = true;
		}
	}
}

function set_loading(){
	//not used
	document.getElementById('cart_loading').style.display = 'block';
	document.getElementById('cart_data').innerHTML='';
}
function remove_loading(){
	document.getElementById('cart_loading').style.display = 'none';	
}
function qty_check(el){
	if(el.value==""){
		el.value = '1';
	}
	var prod_qty = parseFloat(el.value);
	if(prod_qty<1){
		el.value = '1';
	}
}

//numbers_only
function numbersonly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) ){
	if(key == 13){ //if generated character code is equal to ascii 13 (if enter key)
		myfield.blur();
	}
    return true;
}

// numbers
else if ((("0123456789.").indexOf(keychar) > -1))
   return true;

// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function badchar_replace(myfield, e, dec)
{

var key;
var keychar;	
	
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("-;'\"").indexOf(keychar) > -1))
   return false;
else
   return true;
}

//imageloader
/**
* A simple JavaScript image loaderimage loader
* @author Cuong Tham
* @url http://thecodecentral.com/2008/02/21/a-useful-javascript-image-loader
* @usage
* var loader = new ImageLoader('IMAGE_URL');
* //set event handler
* loader.loadEvent = function(url, image){
*   //action to perform when the image is loaded
*   document.body.appendChild(image);
* }
* loader.load();
*/

//source: http://snipplr.com/view.php?codeview&id=561
// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling)
{
  bubbling = bubbling || false;
  if(window.addEventListener)	{ // Standard
    element.addEventListener(type, expression, bubbling);
    return true;
  } else if(window.attachEvent) { // IE
    element.attachEvent('on' + type, expression);
    return true;
  } else return false;
}

var ImageLoader = function(url){
  this.url = url;
  this.image = null;
  this.loadEvent = null;
};

ImageLoader.prototype = {
  load:function(){
    this.image = document.createElement('img');
    var url = this.url;
    var image = this.image;
    var loadEvent = this.loadEvent;
    addListener(this.image, 'load', function(e){
      if(loadEvent != null){
        loadEvent(url, image);
      }
    }, false);
    this.image.src = this.url;
  },
  getImage:function(){
    return this.image;
  }
};

//png
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}

//opacity
var fading;

function fadeOutW(el){
	var object = document.getElementById(el).style;
	clearTimeout(fading);
	changeOpac(object.opacity*100, el);
	opacity(el, object.opacity*100, 0, 1000);
}
function fadeInW(el){
	var object = document.getElementById(el).style;
	clearTimeout(fading);
	changeOpac(object.opacity*100, el);
	opacity(el, object.opacity*100, 70, 600);	
}

function fadeOutEl(el){
	clearTimeout(fading);
	opacity(el, 100, 0, 1000);
}
function fadeInEl(el){
	var object = document.getElementById(el).style;
	clearTimeout(fading);
	changeOpac(object.opacity*100, el);
	opacity(el, 0, 100, 500);	
}

opacTimeoutAr = new Array();
function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;
	
    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
			if(opacTimeoutAr[i]){
				clearTimeout(opacTimeoutAr[i]);
			}
           opacTimeoutAr[i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
			if(opacTimeoutAr[i]){
				clearTimeout(opacTimeoutAr[i]);
			}
            opacTimeoutAr[i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	//alert(id);
	//if(document.getElementById(id)){
		var object = document.getElementById(id).style;
		if(object.opacity!==(opacity/100)){
			object.opacity = (opacity / 100);
			object.MozOpacity = (opacity / 100);
			object.KhtmlOpacity = (opacity / 100);
			object.filter = "alpha(opacity=" + opacity + ")";
			
			if(opacity==0){
			//object.visibility="hidden";
			object.display="none";
			}else{
			//object.visibility="visible";
			object.display="block";
			}
		}
	//}
} 


function shiftOpacity(id, millisec) {	
    if(fadeOut == false) {
        opacity(id, 0, 100, millisec);
		fadeOut=true;
    } else {
        opacity(id, 100, 0, millisec);
		fadeOut=false;
    }
}


