// JavaScript Document

if (document.images)
{
  pic1= new Image(990,150); 
  pic1.src="img/banner_wb.jpg"; 

  pic2= new Image(990,150); 
  pic2.src="img/banner_cospa.jpg"; 

  pic3= new Image(990,150); 
  pic3.src="img/banner_alice.jpg"; 

  pic4= new Image(990,150); 
  pic4.src="img/banner_chaos.jpg"; 

  pic5= new Image(990,150); 
  pic5.src="img/banner_nijigen.jpg"; 

  pic6= new Image(990,150); 
  pic6.src="img/banner_resinya.jpg"; 
}

var adImages = new Array("bn01","bn02","bn03", "bn04", "bn05", "bn06");
var buttons = new Array("bn_tab01","bn_tab02","bn_tab03", "bn_tab04", "bn_tab05", "bn_tab06");
var thisAd = -1;
var imgCt = adImages.length;
var hover = false;
var prevAd = '';
var restart_timer = 1000;
var countdown_done = false;

function hover_append()
{
	for (i in buttons)
	{
		var layer = buttons[i];
		document.getElementById(layer).setAttribute("onmouseover", 'stop('+i+');' );
		document.getElementById(layer).setAttribute("onmouseout", 'restart('+i+');');
	
	}
}

function stop(num)
{// the banner rotation is paused at the currently highligted banner.

	hover = true;
	document.getElementById(buttons[thisAd]).setAttribute("class", 'banner_tab');

	if (thisAd != num)
	{ //fade away current banner, fade in selected banner. If old and new banner are the same, don't do anything.
		showhide_layer(adImages[thisAd]);
		thisAd = num;
		showhide_layer(adImages[thisAd]);
	}
}

function restart(num)
{// the major problem with this guy is that EVERYtime you leave a button, this function will fire
 // need to use some global(?) means to control the restart process

	document.getElementById(buttons[thisAd]).setAttribute("class", 'banner_tab_over');
	hover= false;
	setTimeout("if ((restart_timer == 1000)&&(hover != true))countdown();else restart_timer=1000;", 500);


}

function countdown()
{
	//document.getElementById('timer').innerHTML = restart_timer;
	//echo the restart_timer value to somewhere for testing purposes

	if (restart_timer != 0)
	{
		restart_timer = restart_timer -100;
		setTimeout("countdown()", 100);
	}
	else
	{
		if (hover == false)
		{	//restart the banner rotation from current one (var countdown_done is used to kill main 3 second rotate process otherwise will clash with restarted one)
			countdown_done = true;
			setTimeout("countdown_done = false;rotate();", 2.5 * 1000);
		}
		else
		{
			restart_timer=1000;
			countdown();
		}
	}
	
}

function rotate()
{
	if (document.images)
	{
		prevAd = thisAd;
		thisAd++;
		if (thisAd == imgCt)
		{
			thisAd = 0;
		}
	
		if (prevAd != -1)
		{
			showhide_layer(adImages[prevAd]);
			document.getElementById(buttons[prevAd]).setAttribute("class", 'banner_tab');
		}
	
		showhide_layer(adImages[thisAd]);
		document.getElementById(buttons[thisAd]).setAttribute("class", 'banner_tab_over');

		setTimeout("if ((hover == false)&&(countdown_done == false)){rotate();}", 2.5 * 1000);
	}
}

function showhide_layer(layer_id)
{
	function setOpacity(value, layer)
	{
		layer.style.opacity = value/10;
		layer.style.filter = 'alpha(opacity=' + value*10 + ')';
	}

	var layer = document.getElementById(layer_id);
	var vid_hid = (layer.style.visibility == "visible") ? "hidden" : "visible";
	if (vid_hid == "visible")//fadein
	{
		setTimeout(function(){setOpacity(0, layer)}, 0);
		setTimeout(function(){layer.style.visibility = vid_hid}, 0);
		setTimeout(function(){setOpacity(1, layer)}, 10);
		setTimeout(function(){setOpacity(2, layer)}, 20);
		setTimeout(function(){setOpacity(3, layer)}, 30);
		setTimeout(function(){setOpacity(4, layer)}, 40);
		setTimeout(function(){setOpacity(5, layer)}, 50);
		setTimeout(function(){setOpacity(6, layer)}, 60);
		setTimeout(function(){setOpacity(7, layer)}, 70);
		setTimeout(function(){setOpacity(8, layer)}, 80);
		setTimeout(function(){setOpacity(9, layer)}, 90);
		setTimeout(function(){setOpacity(10, layer)}, 100);
	}
	else if (vid_hid == "hidden")//fadeout
	{
		setTimeout(function(){setOpacity(10, layer)}, 0);
		setTimeout(function(){setOpacity(9, layer)}, 10);
		setTimeout(function(){setOpacity(8, layer)}, 20);
		setTimeout(function(){setOpacity(7, layer)}, 30);
		setTimeout(function(){setOpacity(6, layer)}, 40);
		setTimeout(function(){setOpacity(5, layer)}, 50);
		setTimeout(function(){setOpacity(4, layer)}, 60);
		setTimeout(function(){setOpacity(3, layer)}, 70);
		setTimeout(function(){setOpacity(2, layer)}, 80);
		setTimeout(function(){setOpacity(1, layer)}, 90);
		setTimeout(function(){setOpacity(0, layer)}, 100);
		setTimeout(function(){layer.style.visibility = vid_hid}, 100);
	}
}

function check_focus(id)
{
	document.getElementById(id).checked='checked';
}

function num_only(evt)
{
	var charCode = ( evt.which ) ? evt.which : event.keyCode;
	return ( charCode >= 48 && charCode <= 57 || charCode == 8 || charCode == 127 ); //nums, backspace and del key only
}

function price_only(evt)
{
	var charCode = ( evt.which ) ? evt.which : event.keyCode;
	return ( charCode >= 48 && charCode <= 57 || charCode == 46 || charCode == 8 || charCode == 127 ); //nums, decimal, backspace and del key only
}

function no_space(evt)
{
	var charCode = ( evt.which ) ? evt.which : event.keyCode;
	return ( charCode != 32 ); //No space allowed
}

function populate_sizes(num)
{
	var list = 'size_list_'+num;
	var box = 'size_box_'+num;
	var hidden = 'size_hidden_'+num;

	var list_div = document.getElementById(list);
	var sizes_check = list_div.getElementsByTagName("input");
	var sizes_txt = list_div.getElementsByTagName("span");
	var sizes_hidden = document.getElementById(hidden);

	var sizes_string = '';
	var sizes_id_string = '';

	for (i=0;i<sizes_check.length-2;i++) //minus 2 because of the OK and Cancel buttons at the end
	{
		if (sizes_check[i].checked == true)
		{
			sizes_string += sizes_txt[i].innerHTML+', ';

			var sizes_id = sizes_check[i].value;
			if (sizes_id.length < 4) //pad the size id to be 4 characters so it will appeared in the SQL search
			{
				var to_pad = (4 - sizes_id.length);

				for (j=0;j<to_pad;j++)
				{
					sizes_id = '_'+sizes_id;
				}
			}

			sizes_id_string += sizes_id+' ';
		}
	}

	if (sizes_string.length != 0)
		sizes_string = sizes_string.substring(0, (sizes_string.length-2));

	var box_div = document.getElementById(box);
	box_div.innerHTML = sizes_string;
	sizes_hidden.setAttribute('value', sizes_id_string);

	if (document.getElementById('size_txt')) /* if this div exists (edit_del section only) */
	{
		var size_txt = document.getElementById('size_txt');
		size_txt.setAttribute('value', sizes_string);
	}

	showhide_layer(list);
}

function tip_disp(e, img_self, container)
{
	var index = document.getElementById("content");

	var img_table = document.getElementById(container);
	var img = img_table.getElementsByTagName("img");

	var offsety = 20;
	var width = 150;//width of tooltip

	var tooltip = document.createElement("div");
	tooltip.setAttribute("id", "tooltip");

	for (var i=0; i<img.length; i++)
	{
		img[i].onmousemove = function(e)
		{
			if (!e) var e = window.event;
			if (e.pageX || e.pageY)
			{
				posx = e.pageX;
				posy = e.pageY;
			}
			else if (e.clientX || e.clientY)
			{
				if (document.documentElement)
				{
					posx = e.clientX + document.documentElement.scrollLeft;
					posy = e.clientY + document.documentElement.scrollTop;
				}
				else if (document.body)
				{
					posx = e.clientX + document.body.scrollLeft;
					posy = e.clientY + document.body.scrollTop;
				}
			}

			var f_layer = document.getElementById("tooltip");
			if (f_layer)
				index.removeChild(f_layer);

			if (!tooltip.hasChildNodes())
			{
				var description = document.createElement("div");
				description.innerHTML = img_self.alt;
				tooltip.appendChild(description);
			}

			index.appendChild(tooltip);

			if (self.innerWidth) // all except Explorer
				var doc_width = self.innerWidth;
			else if (document.documentElement && document.documentElement.clientWidth)	// Explorer 6 Strict Mode
				var doc_width = document.documentElement.clientWidth;
			else if (document.body) // other Explorers
				var doc_width = document.body.clientWidth;

			if (document.documentElement)
				var tip_align = ((doc_width - posx  + document.documentElement.scrollLeft)/posx)+width;
			else if (document.body)
				var tip_align = ((doc_width - posx  + document.body.scrollLeft)/posx)+width;

			tooltip.style.width = width+"px";
			tooltip.style.left = (posx+tip_align-width-80)+"px";

			tooltip.style.top = offsety+posy+"px";
		}//end onmousemove
	}//end for img
}

function tip_hide()
{
	var index = document.getElementById("content");
	var f_layer = document.getElementById("tooltip");
	if(f_layer)
		index.removeChild(f_layer);
}

function more_sea_options(e)
{
	var options = document.getElementById("adv_sea_table");

	showhide_layer('adv_sea_table');
	options.style.position = (options.style.position == "absolute") ? "relative" : "absolute";
	e.innerHTML = (options.style.position == "absolute") ? "Show the search options" : "Hide the search options";
}

function search_check()
{
	var size_error = 0;
	var error_msg = '';

	var size_1 = document.getElementById("size_1");
	var size_2 = document.getElementById("size_2");

	if (size_1.checked == true)
	{
		var sea_size_list = document.getElementById("sea_size_list");
		var sea_size_wear = sea_size_list.getElementsByTagName("input");

		size_error = 1; //set to 1 first, if any of the boxes are checked, set back to 0
		for (i in sea_size_wear)
		{
			if (sea_size_wear[i].checked == true)
				size_error = 0;
		}
	}

	if (size_2.checked == true)
	{ //check if dimensional size values present
		var sea_size_l = document.getElementById("sea_size_l");
		var sea_size_w = document.getElementById("sea_size_w");
		var sea_size_h = document.getElementById("sea_size_h");

		if ((sea_size_l.value == '')&&(sea_size_w.value == '')&&(sea_size_h.value == ''))
			size_error = 1;
	}

	if (size_error == 1)
	{
		alert('You did not specify any search values for the size setting you specified!');
		return false;
	}
}

function sea_showpg(pg_num)
{
	var curr_pg = document.getElementById("sea_curr_page");
	curr_pg.setAttribute('value', pg_num);

	var form = document.getElementById("searchform");

	if (document.getElementById("news_pg2"))
		news_thumbs(); //if element exists, fire this function

	form.submit();
}

function show_forgotbox()
{
	var forgotbox = document.getElementById("forgot_box");
	showhide_layer('forgot_box');
	forgotbox.style.position = (forgotbox.style.position == "absolute") ? "relative" : "absolute";
}

function addcart_check()
{
	var addcart_table = document.getElementById("addcart_table");
	var addcart_inputs = addcart_table.getElementsByTagName("input");

	var empty = 1;

	for (i=0;i<addcart_inputs.length;i++)
	{
		if (addcart_inputs[i].value != '')
			empty = 0;
	}

	if (empty == 1) //nothing inside
	{
		alert('Please specify at least 1 quantity value!')
		return false;
	}
	else
		return true;
}

function notify_update_cart()
{
	var shopcart_butt = document.getElementById('shopcart_submit_button');
	var shopcart_msg = document.getElementById('shopcart_submit_message');

	shopcart_butt.setAttribute('disabled', 'disabled');
	shopcart_msg.innerHTML = 'There has been a change in your shopping cart\'s item quantities.<br />Please Update the Quantites before submitting the order.';
}

function email_verf(mail_string)
{
	var mail_patt=new RegExp("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$");
	
	return mail_patt.test(mail_string);
}


function alphanum_verf(pass_string)
{
	var pass_patt=new RegExp("^([a-zA-Z0-9_-]+)$");
	
	return pass_patt.test(pass_string);
}

function reg_check()
{
	var reg_email = document.getElementById("reg_email");

	var reg_email = document.getElementById("reg_email");
	var reg_comp_name = document.getElementById("reg_comp_name");
	var reg_comp_tel = document.getElementById("reg_comp_tel");
	var reg_comp_day = document.getElementById("reg_comp_day");
	var reg_comp_month = document.getElementById("reg_comp_month");
	var reg_comp_year = document.getElementById("reg_comp_year");
	var reg_comp_desc = document.getElementById("reg_comp_desc");

	var error_msg = '';

	if ((email_verf(reg_email.value) == false)&&(reg_email.value != ''))
		error_msg += 'Your email address format is invalid.\n';

	if (reg_email.value == '')
		error_msg += 'The email address is empty.\n';

	if (reg_comp_tel.value == '')
		error_msg += 'Your contact number is empty.\n';

	if (reg_comp_name.value == '')
		error_msg += 'Your company name is empty.\n';

	if ((reg_comp_day.value == '0')||(reg_comp_month.value == '0')||(reg_comp_year.value == ''))
		error_msg += 'You company establishment date is not properly specified.\n';

	if (reg_comp_desc.value == '')
		error_msg += 'Your business description is empty.\n';

	if (error_msg != '')
	{
		alert(error_msg);
		return false;
	}
	else
	{
		showhide_layer('loading');
		return true;
	}
}

function login_check()
{
	var login_email = document.getElementById("login_email");
	var login_pass = document.getElementById("login_pass");

	var logpass_return = document.getElementById("logpass_return");

	var error_msg = '';

	if ((email_verf(login_email.value) == false)&&(login_email.value != ''))
		error_msg += 'Your email address format is invalid.\n';

	if (login_email.value == '')
		error_msg += 'You need to specify an email address to log in.\n';

	if (login_pass.value == '')
		error_msg += 'You need to specify a password to log in.\n';
	else
	{
		if ((login_pass.value.length < 5)||(login_pass.value.length > 24))
			error_msg += 'Please ensure that your password is between 5 to 24 characters.\n';
		else
		{
			if (alphanum_verf(login_pass.value) == false)
				error_msg += 'Please ensure that your password only contains alphanumeric characters.\n';
		}
	}

	if (error_msg != '')
	{
		alert(error_msg);
		return false;
	}
	else
	{
		logpass_return.value = hex_md5(login_pass.value);
		return true;
	}
}

function forgot_check()
{
	var forgot_email = document.getElementById("forgot_email");

	var error_msg = '';

	if ((email_verf(forgot_email.value) == false)&&(forgot_email.value != ''))
		error_msg += 'Your email address format is invalid.\n';

	if (forgot_email.value == '')
		error_msg += 'Please specify the email address to send your new password to.\n';

	if (error_msg != '')
	{
		alert(error_msg);
		return false;
	}
	else
	{
		showhide_layer('loading');
		return true;
	}
}

function replicate(e, id)
{
	var copy_to = document.getElementById(id);
	copy_to.value = e.value;
}

function submit_order()
{
	return confirm("Do you wish to submit this order?");
}

function change_pass_check()
{
	var curr_pass = document.getElementById("curr_pass");
	var new_pass1 = document.getElementById("new_pass1");
	var new_pass2 = document.getElementById("new_pass2");

	var curr_passh = document.getElementById("curr_passh");
	var new_pass1h = document.getElementById("new_pass1h");
	var new_pass2h = document.getElementById("new_pass2h");

	var error_msg = '';

	if (curr_pass.value == '')
		error_msg += 'You have not specified your current password.\n';

	if ((curr_pass.value.length < 5)||(curr_pass.value.length > 24))
		error_msg += 'Please ensure that your current password is between 5 to 24 characters.\n';

	if (alphanum_verf(curr_pass.value) == false)
		error_msg += 'Please ensure that your current password only contains alphanumeric characters.\n';

	if ((new_pass1.value != '')&&(new_pass2.value != '')) //both password fields filled out
	{
		if (new_pass1.value != new_pass2.value)		
			error_msg += 'Please ensure that your new password is identical in both fields.\n';
		else
		{
			if ((new_pass1.value.length < 5)||(new_pass1.value.length > 24)||(new_pass2.value.length < 5)||(new_pass2.value.length > 24))
				error_msg += 'Please ensure that your new password is between 5 to 24 characters.\n';
			else
			{
				if ((alphanum_verf(new_pass1.value) == false)||(alphanum_verf(new_pass2.value) == false))
					error_msg += 'Please ensure that your new password only contains alphanumeric characters.\n';
			}
		}
	}
	else
		error_msg += 'Please specify your new password twice.\n';


	if (error_msg != '')
	{
		alert(error_msg);
		return false;
	}
	else
	{
		curr_passh.value = hex_md5(curr_pass.value);
		new_pass1h.value = hex_md5(new_pass1.value);
		new_pass2h.value = hex_md5(new_pass2.value);
		return true;
	}
}

function comment_hide()
{
	var index = document.getElementById("content");
	var f_layer = document.getElementById("tooltip_comment");
	if(f_layer)
		index.removeChild(f_layer);
}

function comment_disp(e, self)
{
	var index = document.getElementById("content");

	var offsety = 20;
	var width = 250;//width of tooltip

	var tooltip = document.createElement("div");
	tooltip.setAttribute("id", "tooltip_comment");

	self.onmousemove = function(e)
	{
		if (!e) var e = window.event;
		if (e.pageX || e.pageY)
		{
			posx = e.pageX;
			posy = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			if (document.documentElement)
			{
				posx = e.clientX + document.documentElement.scrollLeft;
				posy = e.clientY + document.documentElement.scrollTop;
			}
			else if (document.body)
			{
				posx = e.clientX + document.body.scrollLeft;
				posy = e.clientY + document.body.scrollTop;
			}
		}

		var f_layer = document.getElementById("tooltip");
		if (f_layer)
			index.removeChild(f_layer);

		if (!tooltip.hasChildNodes())
		{
			var description = document.createElement("div");
			description.innerHTML = self.getAttribute('alt');
			tooltip.appendChild(description);
		}

		index.appendChild(tooltip);

		if (self.innerWidth) // all except Explorer
			var doc_width = self.innerWidth;
		else if (document.documentElement && document.documentElement.clientWidth)	// Explorer 6 Strict Mode
			var doc_width = document.documentElement.clientWidth;
		else if (document.body) // other Explorers
			var doc_width = document.body.clientWidth;

		if (document.documentElement)
			var tip_align = ((doc_width - posx  + document.documentElement.scrollLeft)/posx)+width-150;
		else if (document.body)
			var tip_align = ((doc_width - posx  + document.body.scrollLeft)/posx)+width-150;

		tooltip.style.width = width+"px";
		tooltip.style.left = (posx+tip_align-width-80)+"px";

		tooltip.style.top = offsety+posy+"px";
	}//end onmousemove
}
