var children = Array();
var btn = {
    init : function() {
        if (!document.getElementById || !document.createElement || !document.appendChild) return false;
        as = btn.getElementsByClassName('btn(.*)');
        for (i=0; i<as.length; i++) {
            if ( as[i].tagName == "INPUT" && ( as[i].type.toLowerCase() == "submit" || as[i].type.toLowerCase() == "button" ) ) {
                var a1 = document.createElement("a");
                a1.appendChild(document.createTextNode(as[i].value));
                a1.className = as[i].className;
                a1.id = as[i].id;
                as[i] = as[i].parentNode.replaceChild(a1, as[i]);
                as[i] = a1;
                as[i].style.cursor = "pointer";
            }
            else if (as[i].tagName == "A") {
                var tt = as[i].childNodes;
            }
            else { return false };
            var i1 = document.createElement('i');
            var i2 = document.createElement('i');
            var s1 = document.createElement('span');
            var s2 = document.createElement('span');
            s1.appendChild(i1);
            s1.appendChild(s2);
            while (as[i].firstChild) {
              s1.appendChild(as[i].firstChild);
            }
            as[i].appendChild(s1);
            as[i] = as[i].insertBefore(i2, s1);
        }
        // The following lines submits the form if the button id is "submit_btn"
        btn.addEvent(document.getElementById('submit_btn'),'click',function() {
            var form = btn.findForm(this);
            form.submit();
        });
        // The following lines resets the form if the button id is "reset_btn"
        btn.addEvent(document.getElementById('reset_btn'),'click',function() {
            var form = btn.findForm(this);
            form.reset();
        });
    },
    findForm : function(f) {
        while(f.tagName != "FORM") {
            f = f.parentNode;
        }
        return f;
    },
    addEvent : function(obj, type, fn) {
    	if (obj) {
	        if (obj.addEventListener) {
	            obj.addEventListener(type, fn, false);
	        }
	        else if (obj.attachEvent) {
	            obj["e"+type+fn] = fn;
	            obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
	            obj.attachEvent("on"+type, obj[type+fn]);
	        }
    	}
    },
    getElementsByClassName : function(className, tag, elm) {
        var testClass = new RegExp("(^|\s)" + className + "(\s|$)");
        var tag = tag || "*";
        var elm = elm || document;
        var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
        var returnElements = [];
        var current;
        var length = elements.length;
        for(var i=0; i<length; i++){
            current = elements[i];
            if(testClass.test(current.className)){
                returnElements.push(current);
            }
        }
        return returnElements;
    }
}

btn.addEvent(window,'load', function() { btn.init();} );

function open_win(url, width, height, x, y) {
	children[children.length] = window.open (url, '', 'toolbar=no,status=no,location=no,directories=no,menubar=no,scrollbars=yes,resizable=yes,width=' + width + ',height=' + height);
	if (!x || !y) {
 		children[children.length-1].moveTo (75, 60);
 	} else {
	 	children[children.length-1].moveTo (x, y);
 	}
 	children[children.length-1].focus ();
}

function closeChildren() {
	for(i = 0; i < children.length; i++) {
		children[i].close();
	}
}

function clearLists() {
	var huuto = document.forms['prdcsearch'].elements['searchtype'];
	var id_manufacturer = document.forms['prdcsearch'].elements['id_manufacturer'];
	var id_group = document.forms['prdcsearch'].elements['id_group'];
	var list2 = document.getElementById('list2');
	var list4 = document.getElementById('list4');
	var m= '';
	var sel_group = '';
	var sel_manu = '';
	var avail = document.forms['prdcsearch'].elements['h'].checked;

	// re-generate list 2
	if (list2) {
		// clear the list
		list2.innerHTML = '<select name="" style="width:150px;"><option value="">&nbsp;         </option></select>';

		// create a new list based on first value
		if (huuto.options[huuto.selectedIndex].value == 'manufacturer') {
			m = 'findManus&h='+(avail ? 1: 0);
		} else if (huuto.options[huuto.selectedIndex].value == 'group') {
			m = 'findGroups&h='+(avail ? 1: 0);
		}
		
		if (m != "") {
			getListInners(m, list2);
		}
	}
	
	// clear list4;
	if (list4) {
		list4.innerHTML = '<select name="" style="width:150px;"><option value="">&nbsp;             </option></select>';
	}
	
	
		
}	

function setList(el, id, id2, id3) {
		var huuto = el.options[el.selectedIndex].value;
		showList(huuto, id, id2, id3, 'prdcsearch');
}

function showList(list, id, id2, id3, formname) {
	var posit = document.getElementById(id);
	var posit4 = document.getElementById('list4');

	if (posit) {
		posit.innerHTML = '<select name="" style="width:150px;"><option value="">&nbsp;            </option></select>';
	}

	if (posit4) {
		posit4.innerHTML = '<select name="" style="width:150px;"><option value="">&nbsp;         </option></select>';
	}

	var method = false;
	/**
	 * Look for 'haku hankintatuotteista'
	 */
	var avail = document.forms[formname].elements['h'].checked;

	if (list == 'manufacturer' && posit) {
		nextit = '';
		method = 'findManus&h='+(avail ? 1: 0);
	} else if (list == 'group' && posit) {
		nextit = '';
		method = 'findGroups&h='+(avail ? 1: 0);
	} else if (list == 'manufacturer2' && posit && document.forms['prdcsearch'].elements['id_group']) {
		var huuto = document.forms[formname].elements['id_group'].options[document.forms['prdcsearch'].elements['id_group'].selectedIndex].value;
		if (huuto != "") {
			method = 'findManus&group='+huuto+'&h='+(avail ? 1: 0);
		}
	} else if (list == 'group2' && posit && document.forms['prdcsearch'].elements['id_manufacturer']) {
		var huuto = document.forms[formname].elements['id_manufacturer'].options[document.forms['prdcsearch'].elements['id_manufacturer'].selectedIndex].value;
		if (huuto != "") {
			method = 'findGroups&manu='+huuto+'&h='+(avail ? 1: 0);
		}
	} else if (list == 'favourites' && posit && document.forms['prdcsearch'].elements['id_manufacturer']) {
		var huuto = document.forms[formname].elements['id_manufacturer'].options[document.forms['prdcsearch'].elements['id_manufacturer'].selectedIndex].value;
		if (huuto != "") {
			method = 'findFav&manu='+huuto+'&h='+(avail ? 1: 0);
		}
	} else if (list == 'favourites' && posit && document.forms['prdcsearch'].elements['id_group']) {
		var huuto = document.forms[formname].elements['id_group'].options[document.forms['prdcsearch'].elements['id_group'].selectedIndex].value;
		if (huuto != "") {
			method = 'findFav&group='+huuto+'&h='+(avail ? 1: 0);
		}
	} else if (document.forms[formname].elements['id_group']) {
		if (list != "") {
			method = 'findManus&group='+list+'&h='+(avail ? 1: 0);
		}
	} else if (document.forms[formname].elements['id_manufacturer']) {
		if (list != "") {
			method = 'findGroups&manu='+list+'&h='+(avail ? 1: 0);
		}
	}

	if (method) {
		getListInners(method, posit);
	}
}

function getListInners(method, posit) {
	$.ajax({
	  url: '/?m='+method,
	  cache: false,
	  success: function(html){
	   	posit.innerHTML = html;
	  }
	});
}


function searchSuggest() {
	var str = escape(document.getElementById('filter').value);
	var ss = document.getElementById('filterResults');

	$.ajax({
	  url: '/?m=findArra&c=' + str,
	  cache: true,
	  success: function(html){
	   	ss.innerHTML = html;
	  }
	});
}

function showShopcart() {
	var element = document.getElementById("shopcart");
	
	if(login) {
				
		element.style.display = "none";
	    login = false;
	} else {
	
		element.enabled = true;
		element.style.display = "block";
	    login = true;
	}
	
	return false;
}

function showNews() {
	var element = document.getElementById("news");
	
	if(news) {
				
		element.style.display = "none";
	    news = false;
	} else {
	
		element.enabled = true;
		element.style.display = "block";
	    news = true;
	}
	
	return false;
}

function closePopup(id) {
	var element = document.getElementById("popup-"+id);
	element.style.display = "none";
}

function openPopup(id) {
	var element = document.getElementById("popup-"+id);
	element.style.display = "block";
}

function flipImage(id, im) {
	$('#'+id).attr('src', im).fadeIn("slow");
}

function flipProductImageLink(id, im) {
	$('#'+id).attr('onclick', '');
	$('#'+id).unbind('click');
	if  (im) {
	$('#'+id).click(function() {
		open_win(im, 830,830)
		return false;
	});
	}
}

function showResult(str) {
	if (str.length == 0) {
		$('#cityd').text('');
		return;
     }

	$.ajax({
	  url: '/?m=postcodefind&c='+str,
	  cache: true,
	  success: function(html){
     		$('#cityd').html(html);
     		document.forms['order'].elements['city'].value =html;
	  }
	});
} 