var event_controller  = new event;
event_controller.onHtmlLoad(gallery_finder);

function gallery_finder(){
	var event_controller  = new event;
	var button = document.getElementById("pre_order_button");
	event_controller.addHandler(button,"click",function(e){submit_order(this,e);}.bind(button));
	var body = document.getElementsByTagName('BODY')[0];
	dig(body);
}

function submit_order(obj,e){
	if(e!=null){var e = e || window.event;}
	obj.blur();
	document.getElementById("preorder").submit();
		if (typeof e.preventDefault != 'undefined'){e.preventDefault();}
	return!1;
}


function dig(obj){
	var kids = obj.childNodes;
	for(var i=0;i<kids.length;i++){
		if(
			(kids[i].className=="color_switch")||
			(kids[i].className=="color_switch_selected")
		){
			if(kids[i].className=="color_switch_selected"){
				var cookies = new cookieController;
				var switch_set = cookies.getCookie("switch");
				var id = kids[i].id.substr(0,kids[i].id.lastIndexOf("_"));
				var kids_val = kids[i].id.substr(kids[i].id.lastIndexOf("_")+1);
				var input = document.getElementById(id+"_value");
				if(switch_set==false){
					cookies.setCookie("switch",id+":"+kids_val+"|");
					input.value=kids_val;
				}else{
					var start_pos = switch_set.lastIndexOf(id+":");
					if(start_pos==-1){
						cookies.setCookie("switch",switch_set+id+":"+kids_val+"|");
					}else{
						var start_pos = start_pos+id.length+1;
						var end_pos = switch_set.indexOf("|",start_pos);
						var last_value = switch_set.substr(start_pos,end_pos-start_pos);
						if(last_value!=kids_val){
							kids[i].className = "color_switch";
							var theone = document.getElementById(id+"_"+last_value);
							theone.className = "color_switch_selected";
							input.value=last_value;
						}else{
							input.value=kids_val;
						}
					}
				}
			}
			var event_controller  = new event;
			event_controller.addHandler(kids[i],"click",function(e){switch_to(this,e);return!1;}.bind(kids[i]));
		}
		if(
			(kids[i].className=="preview")||
			(kids[i].className=="preview_selected")
		){
			if(kids[i].className=="preview_selected"){
				var cookies = new cookieController;
				var gallery_set = cookies.getCookie("gallery");
				var id = kids[i].id.substr(0,kids[i].id.lastIndexOf("_"));
				var kids_val = kids[i].id.substr(kids[i].id.lastIndexOf("_")+1);
				var full = document.getElementById("full_size");
				if(gallery_set==false){
					cookies.setCookie("gallery",id+":"+kids_val+"|");
					var src = kids[i].getElementsByTagName("IMG")[0].src; 
					var pos = src.lastIndexOf("tn_");
					full.src=src.substr(0,pos)+src.substr(pos+3);
				}else{
					var start_pos = gallery_set.lastIndexOf(id+":");
					if(start_pos==-1){
						cookies.setCookie("gallery",gallery_set+id+":"+kids_val+"|");
					}else{
						var start_pos = start_pos+id.length+1;
						var end_pos = gallery_set.indexOf("|",start_pos);
						var last_value = gallery_set.substr(start_pos,end_pos-start_pos);
						if(last_value!=kids_val){
							kids[i].className = "preview";
							var theone = document.getElementById(id+"_"+last_value);
							theone.className = "preview_selected";
							var src = theone.getElementsByTagName("IMG")[0].src; 
							var pos = src.lastIndexOf("tn_");
							full.src=src.substr(0,pos)+src.substr(pos+3);
						}else{
							var src = kids[i].getElementsByTagName("IMG")[0].src; 
							var pos = src.lastIndexOf("tn_");
							full.src=src.substr(0,pos)+src.substr(pos+3);
						}
					}
				}
			}
			var event_controller  = new event;
			var photo  = document.getElementById("full_size");
			event_controller.addHandler(kids[i],"click",function(e){gallery_to(this,e);return!1;}.bind(kids[i]));
			if((BrowserDetect.browser=='Explorer')||(BrowserDetect.browser=='Opera')){
				if(top.window.document.photo_timer!=undefined){
					clearInterval(top.window.document.photo_timer);
				}
				top.window.document.photo_timer = window.setInterval("test_on_load()", 1000);
				test_on_load();
			}else{
				event_controller.addHandler(photo,"load",hide_preloader);
			}
		}
		if(kids[i].hasChildNodes()==true){
			dig(kids[i]);
		}
	}
}

function test_on_load(){
	var photo  = document.getElementById("full_size");
	if(photo.complete==true){
		if(top.window.document.photo_timer!=undefined){
			clearInterval(top.window.document.photo_timer);
		}
		hide_preloader();
	}else{
			return false;	
	}
}

function hide_preloader(){
	var preloader  = document.getElementById("preloader");
	preloader.style.display="none";
}

function show_preloader(){
	var preloader  = document.getElementById("preloader");
	preloader.style.display="block";
}

function switch_to(obj,e){
	if(e!=null){var e = e || window.event;}
	obj.blur();
		
	var value = obj.id.substr(obj.id.lastIndexOf("_")+1);
	var id = obj.id.substr(0,obj.id.lastIndexOf("_"));
	var cookies = new cookieController;
	var switch_set = cookies.getCookie("switch");
	var start_pos = switch_set.lastIndexOf(id+":")+id.length+1;
	var end_pos = switch_set.indexOf("|",start_pos);
	var last_value = switch_set.substr(start_pos,end_pos-start_pos);
		
	if(last_value==value){
		if (typeof e.preventDefault != 'undefined'){e.preventDefault();}
		return!1;
	}
		
	var first_part = switch_set.substr(0,start_pos - id.length - 1);
	var second_part = switch_set.substr(end_pos+1);
	var old = document.getElementById(id+"_"+last_value);
	var input = document.getElementById(id+"_value");
	
	input.value=value;
	old.className = "color_switch";
	obj.className = "color_switch_selected";
	cookies.setCookie("switch",first_part+id+":"+value+"|"+second_part);
	
	if (typeof e.preventDefault != 'undefined'){e.preventDefault();}
	return!1;
}


function gallery_to(obj,e){
	if(e!=null){var e = e || window.event;}
	obj.blur();
		
	var value = obj.id.substr(obj.id.lastIndexOf("_")+1);
	var id = obj.id.substr(0,obj.id.lastIndexOf("_"));
	var cookies = new cookieController;
	var gallery_set = cookies.getCookie("gallery");
	var start_pos = gallery_set.lastIndexOf(id+":")+id.length+1;
	var end_pos = gallery_set.indexOf("|",start_pos);
	var last_value = gallery_set.substr(start_pos,end_pos-start_pos);
		
	if(last_value==value){
		if (typeof e.preventDefault != 'undefined'){e.preventDefault();}
		return!1;
	}
		
	var first_part = gallery_set.substr(0,start_pos - id.length - 1);
	var second_part = gallery_set.substr(end_pos+1);
	var old = document.getElementById(id+"_"+last_value);
	var full = document.getElementById("full_size");
	var src =obj.getElementsByTagName("IMG")[0].src; 
	var pos = src.lastIndexOf("tn_");
	full.src=src.substr(0,pos)+src.substr(pos+3);
	show_preloader();
	if((BrowserDetect.browser=='Explorer')||(BrowserDetect.browser=='Opera')){
		if(top.window.document.photo_timer!=undefined){
			clearInterval(top.window.document.photo_timer);
		}
		top.window.document.photo_timer = window.setInterval("test_on_load()", 1000);
		test_on_load();
	}
	old.className = "preview";
	obj.className = "preview_selected";
	cookies.setCookie("gallery",first_part+id+":"+value+"|"+second_part);
	
	if (typeof e.preventDefault != 'undefined'){e.preventDefault();}
	return!1;
}

function search_parent_by_class(obj,class_name){
	var parent = obj.parentNode;
	while(parent.className!==class_name){
		parent = parent.parentNode;
		if(parent.tagName=="BODY"){
			return false;
		}
	}
	return parent;
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

