// JavaScript Document

var droppanel='';
var maxpanelsize='';

//drop downs
function openDropDown(id){
	if(id){
		var outerObject=document.getElementById(id);
		var panel=getElementsByClassName(outerObject,'droppanel_content_outer');
		var panelInner=getElementsByClassName(outerObject,'droppanel_content_inner');
		droppanel=panel[0];
		maxpanelsize=(panelInner[0].offsetHeight+10);
		if(droppanel.offsetHeight<100){				
			setTimeout("tabSlideDown('48')",1);// timer
		}else{
			setTimeout("tabSlideUp('48')",1);// timer
		}
	}
}

function closeDropDown(id){
	if(id){
		 var outerObject=document.getElementById(id);
		 var panel=getElementsByClassName(outerObject,'droppanel_content_outer');
		 panel[0].style.height="0"; 
	}
}

function tabSlideDown(speed){	
	if(maxpanelsize && droppanel){
		if((parseInt(droppanel.offsetHeight)+parseInt(speed))<maxpanelsize){		
			droppanel.style.height=(parseInt(droppanel.offsetHeight)+parseInt(speed))+"px";
			if(speed>2){speed=speed/1.2;}
			setTimeout("tabSlideDown('"+speed+"')",1);// timer
		}else{		
			droppanel.style.height=maxpanelsize+"px";
		}
	} 
}

function tabSlideUp(speed){	
	if(maxpanelsize && droppanel){
		if((parseInt(droppanel.offsetHeight)-parseInt(speed))>2){		
			droppanel.style.height=(parseInt(droppanel.offsetHeight)-parseInt(speed))+"px";
			if(speed>2){speed=speed/1.2;}
			setTimeout("tabSlideUp('"+speed+"')",1);// timer 
		}else{
			droppanel.style.height="0";
		}
	} 
}

function getElementsByClassName(object,name){
	var allNodes=object.getElementsByTagName('*');
	if(!allNodes){
		var allNodes=object.all;	
	}
	var returnObj=new Array;
	var count=0;
	for(var i=0;i<allNodes.length;i++){
		if(allNodes[i].className.replace(name,"")!=allNodes[i].className){
			returnObj[count]=allNodes[i];
			count++;
		}
	}
	return returnObj;
}

function swapImage(div) {
	var kids;
	if(div.childNodes) {
		var maindiv = document.getElementById('leftColEqual');
		var mainimg = maindiv.getElementsByTagName('img')[0];
		
		kids = getChildNodes(div);

		for(i=0; i<kids.length; i++) {
			var tn = kids[i].tagName;
			if(tn != undefined) {
				tn = tn.toLowerCase();
				if(tn != 'img' && kids[i].childNodes) {
					grandkids = getChildNodes(kids[i]);
					for(j=0; j<grandkids.length; j++){
						if(grandkids[j].tagName) {
							var tnx = grandkids[j].tagName;
							tnx = tnx.toLowerCase();
						}
						if(tnx == 'img') {
							var src = grandkids[j].getAttribute('src');
							src=src.replace(/-RS-[0-9]*x[0-9]*/,'');
							mainimg.setAttribute('src',src);
							break;
						}
					}
				} else if(tn == 'img') {
					var src = kids[i].getAttribute('src');
					src=src.replace(/-RS-[0-9]*x[0-9]*/,'');
					mainimg.setAttribute('src',src);
					break;
				}
			}
		}
	}
}

function getChildNodes(el) {
	var kids = el.childNodes;
	return kids;
}

var advStatus = 0;

function advancedSearch() {
//	var outerDiv = document.getElementById('searchbox');
	var innerDiv = document.getElementById('advboxes');
	var p = document.getElementById('advText');
	if(advStatus == 0){
		//outerDiv.style.background = "url('/images/site_bits/basketbg.jpg') no-repeat";
		//outerDiv.style.height = "173px";
		p.innerHTML = "basic search";
		innerDiv.style.display = "block";
		advStatus = 1;
	} else {
		//outerDiv.style.background = "url('/images/site_bits/searchbg2.jpg') no-repeat";
		//outerDiv.style.height = "61px";
		p.innerHTML = "advanced search";
		innerDiv.style.display = "none";
		advStatus = 0;
	}
}

function clearInput(obj,dir) {
	var inp = document.getElementById(obj.id);
	if(dir == 'f') {
		if(inp.value == 'name' || inp.value == 'email' || inp.value == 'search' || inp.value == 'password') {
			if(inp.value == 'password') {
				inp.style.display = 'none';
				var p = document.getElementById('membersPassword');
				if(p.value == 'password') {
					p.value = '';
				}
				p.style.display = 'block';
				p.focus();
				//inp.type = 'password';
			} else {
				inp.value = '';
			}
		}
		if(inp.id == 'editor_name') {
			var mpass = document.getElementById('mpass');
			var outer = document.getElementById('members');
			outer.setAttribute('style','padding-bottom: 20px;');
			mpass.style.display = "block";
		}
	}
	if(dir == 'b') {
		//if(inp.value == '' && inp.id == 'name') {
			//inp.value = 'name';
		var em = document.getElementById('editor_name');
		/*} else*/ if(inp.value == '' && inp.id == 'editor_name') {
			inp.value = 'email';
		} else if((inp.value == '' || inp.value == 'password') && inp.id == 'membersPassword' && em.value == 'email') {
			inp.style.display = 'none';
			var p = document.getElementById('mpassText');
			p.style.display = 'block';
			//inp.value = 'password';
		} else if(inp.value == '' && inp.id == 'q') {
			inp.value = 'search';
		}
	}
}


////////////////////////////////////////////////////////////////////////////////////////////
// select replacemant stuff for advanced search drop down

    function selectReplacement(obj) {
      obj.className += ' replaced';
      var ul = document.createElement('ul');
      ul.className = 'selectReplacement';
      var opts = obj.options;
      for (var i=0; i<opts.length; i++) {
        var selectedOpt;
        if (opts[i].selected) {
          selectedOpt = i;
          break;
        } else {
          selectedOpt = 0;
        }
      }
      for (var i=0; i<opts.length; i++) {
        var li = document.createElement('li');
        var txt = document.createTextNode(opts[i].text);
        li.appendChild(txt);
        li.selIndex = opts[i].index;
        li.selectID = obj.id;
        li.onclick = function() {
          selectMe(this);
        }
        if (i == selectedOpt) {
          li.className = 'selected';
          li.onclick = function() {
            this.parentNode.className += ' selectOpen';
            this.onclick = function() {
              selectMe(this);
            }
          }
        }
        if (window.attachEvent) {
          li.onmouseover = function() {
            this.className += ' hover';
          }
          li.onmouseout = function() {
            this.className = 
              this.className.replace(new RegExp(" hover\\b"), '');
          }
        }
        ul.appendChild(li);
      }
      obj.parentNode.insertBefore(ul,obj);
    }
    function selectMe(obj) {
      var lis = obj.parentNode.getElementsByTagName('li');
      for (var i=0; i<lis.length; i++) {
        if (lis[i] != obj) {
          lis[i].className='';
          lis[i].onclick = function() {
            selectMe(this);
          }
        } else {
          setVal(obj.selectID, obj.selIndex);
          obj.className='selected';
          obj.parentNode.className = 
            obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
          obj.onclick = function() {
            obj.parentNode.className += ' selectOpen';
            this.onclick = function() {
              selectMe(this);
            }
          }
        }
      }
    }
    function setVal(objID, selIndex) {
      var obj = document.getElementById(objID+'Div');
	  var sel = obj.getElementsByTagName('select')[0];
	  sel.selectedIndex = selIndex;
	  if(objID == "advBrand") {		  
		  var pageId = sel.options[selIndex].value;
		  var styleDiv = document.getElementById("advStyleDiv");
		  var styleSel = styleDiv.getElementsByTagName('select')[0];
		  var styleIndex = styleSel.selectedIndex;
		  var style = styleSel.options[styleIndex].value;
		  var url1 = "b="+pageId+"&s="+style+"&func=styles";
		  var url2 = "b="+pageId+"&s="+style+"&func=colour";
		  advSearchUpdateSelect(url1);
		  advSearchUpdateSelect(url2);
		  
	  } else if(objID == "advStyle") {
		  var style = sel.options[selIndex].value;
		  var pageDiv = document.getElementById("advBrandDiv");
		  var pageSel = pageDiv.getElementsByTagName('select')[0];
		  var pageIndex = pageSel.selectedIndex;
		  var pageId = pageSel.options[pageIndex].value;
		  var url = "b="+pageId+"&s="+style+"&func=colour";
		  advSearchUpdateSelect(url);
	  }
    }
    function setForm() {
      var s = document.getElementsByTagName('select');
      for (var i=0; i<s.length; i++) {
		if(s[i].className == "selectReplaced") {
          selectReplacement(s[i]);
		}
      }
    }
    window.onload = function() {
      (document.all && !window.print) ? null : setForm();
	  advSearchUpdateSelect("b=all&func=styles");
	  advSearchUpdateSelect("b=all&s=all&func=colour");
    }
	
	
///////////////////////////////////////////////////////////////////////////////////////////
// post login form

function postLogin() {
	document.memberlogin.password.value=hex_md5(hex_md5(document.getElementById('membersPassword').value)+document.memberlogin.pass_hash.value);
	document.memberlogin.pass_hash.value='';
	document.memberlogin.submit();
	return(false);
}

//

function advSearchUpdateSelect(url){	
	var myConn = new XHConn();
	if (myConn && url){
		myConn.connect("/search/advsearch.php?"+url, "POST", "", advSearchUpdateSelect_res);
	}
}

function advSearchUpdateSelect_res(data){
	
	var myHtml = data.responseText;
	
	var str = myHtml.split("&&&");
	var f = str[1];
	

	
	if(f == "style") {
		var selDiv = document.getElementById('advStyleDiv');
	} else if (f == "colour") {
		var selDiv = document.getElementById('advColourDiv');
	}
	var sel = selDiv.getElementsByTagName('select')[0];
	var ul = selDiv.getElementsByTagName('ul')[0];
	ul.parentNode.removeChild(ul);
	
	//console.log(myHtml);
	
	select_innerHTML(sel,myHtml);
	
	selectReplacement(sel);
	
}
/*
function advSearchGetStyle_res(data){
	if(document.all) {
		var myHtml = '<label for="advStyle">style</label><select class="selectReplaced" id="advStyle" name="advStyle"><option value="all">all</option>';
		myHtml += data.responseText;
		myHtml += '</select>';
		var selDiv = document.getElementById('advStyle');
		var sel = selDiv.getElementsByTagName('select')[0];
		var ul = selDiv.getElementsByTagName('ul')[0];
		sel.parentNode.removeChild(sel);
		ul.parentNode.removeChild(ul);
		selDiv.innerHTML = myHtml;
		selectReplacement(selDiv.getElementsByTagName('select')[0]);
	} else {
		var myHtml =data.responseText;
		var selDiv = document.getElementById('advStyle');
		var sel = selDiv.getElementsByTagName('select')[0];
		var ul = selDiv.getElementsByTagName('ul')[0];
		ul.parentNode.removeChild(ul);
		sel.innerHTML = myHtml;
		selectReplacement(sel);
	}
	
}
*/



function select_innerHTML(obj,innerHTML){

    obj.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    obj.add(opt)
   }else{
    obj.appendChild(opt)
   }       
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text

   spantemp.innerHTML = spantemp.innerHTML.replace(new RegExp(/\//g),"/ ");
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML.replace('&amp;','&');
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }    
 document.body.removeChild(selTemp)
 selTemp = null
}

// form validation


function signupValidate(){
	//validate form
	var errors=0;
	var validFields=new Array("first_name", "surname", "telephone", "email", "address","postcode");
	for (i=0;i<validFields.length;i++){
		if(!doesHaveValue(validFields[i])){
			
			errors++;			
		}		
	}
	if(errors>0){
		alert('The form fields indicated in red must be filled out before submitting the form');	
	}else{
		document.getElementById('signup').submit();
		
	}
}

function doesHaveValue(id){
	if(document.getElementById(id)){
		if(document.getElementById(id).value){
			document.getElementById(id).style.border="1px solid #999999";
			return true;
		}else{
			document.getElementById(id).style.border="1px solid red";
			return false;	
		}
	}else{
		alert(id);
		return false;
	}	
}



