// jsEffects.js


// 01. toggleInputbox
//------------------------------------------------------------------------------------------

function toggleInputbox(id,text,userevent){

	var obj = document.getElementById(id);
	if(obj.value == text && userevent != "blur"){
		obj.value = "";
		obj.className = obj.className + " input_box_active";
	}else if(obj.value == text){
		obj.className = obj.className.replace("input_box_active","");
	}else if(trim(obj.value) == ""){
		obj.value = text;
		obj.className = obj.className.replace("input_box_active","");
	}else{
		obj.value = trim(obj.value);
	}
	
}


// 02. trim
//------------------------------------------------------------------------------------------

function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


// 03. toggleTabs
//------------------------------------------------------------------------------------------

function toggleTabs(id){
	$('.tab_container').hide();
	$('#'+id).show();
	$('.tab_selected').removeClass('tab_selected');
	$('#tab_'+id).addClass('tab_selected');

}

// 04. formAddReview
//------------------------------------------------------------------------------------------

function formAddReview(){
	replaceButton();
	resetForm('review_form');
	empty = false;
	fm 	= document.review_form;
	
	input_validator('author','_sm');
	input_validator('email','_sm');
	email_validator('email','_sm');
	input_validator('rating_num','_sm');
	input_validator('review','_sm');
	sec_validator('security','_sm');

	if (empty == false){
		document.review_form.submit()
	}else{
		document.getElementById('form_buttons').innerHTML = "<a href='#' onclick='formAddReview()' class='link_variable'><span>Send</span></a>";
	}
}

// 05. formSignUp
//------------------------------------------------------------------------------------------

function formSignUp()
	{
	replaceButton();
	resetForm('signup_form');
	empty 	= false;
	fm 		= document.signup_form;
	
	if(fm.dealer0 && ((fm.dealer0.checked==false && fm.dealer1.checked==false && fm.dealer2.checked==false) && empty == false))
		{
		$('#msg_response').html("Please ensure you have selected at least one dealer");
		$('#msg_response').addClass("msg_error");
		$('#msg_response').slideDown();
		empty=true;
		}
	
	input_validator('fname','');
	input_validator('lname','');
	input_validator('add_1','');
	input_validator('postcode','');
	input_validator('tel','');
	input_validator('email','');
	input_validator('captcha','');
		
	if($('#captcha').val()!=get_cookie('security_code') && empty==false)
		{
		$('#msg_response').html("Please ensure you have entered the security code correctly at the bottom of the form");
		$('#msg_response').addClass("msg_error");
		$('#msg_response').slideDown();
		empty=true;	
		}
	
	if(empty==false)
		document.signup_form.submit()
	else
		document.getElementById('form_buttons').innerHTML = "<a href='#' onclick='formSignUp()' class='link_variable'><span>Send</span></a>";
}


function formSignUp2()
	{
	replaceButton();
	resetForm('contact_form');
	empty 	= false;
	fm 		= document.contact_form;
	
	input_validator('fname','');
	input_validator('lname','');
	input_validator('add_1','');
	input_validator('postcode','');
	input_validator('email','');
	input_validator('tel','');
	input_validator('vin','');
	input_validator('enquiry','');
	input_validator('captcha','');
		
	if($('#captcha').val()!=get_cookie('security_code') && empty==false)
		{
		$('#msg_response').html("Please ensure you have entered the security code correctly at the bottom of the form");
		$('#msg_response').addClass("msg_error");
		$('#msg_response').slideDown();
		empty=true;	
		}
	
	if(empty==false)fm.submit()
	else document.getElementById('form_buttons').innerHTML = "<a href='#' onclick='formSignUp2()' class='link_variable'><span>Send</span></a>";
}

function formSignUp3()
	{
	replaceButton();
	resetForm('contact_form');
	empty 	= false;
	fm 		= document.contact_form;
	
	input_validator('fname','');
	input_validator('lname','');
	input_validator('add_1','');
	input_validator('postcode','');
	input_validator('email','');
	input_validator('tel','');
	input_validator('people','');
	input_validator('cars','');
	input_validator('captcha','');
		
	if($('#captcha').val()!=get_cookie('security_code') && empty==false)
		{
		$('#msg_response').html("Please ensure you have entered the security code correctly at the bottom of the form");
		$('#msg_response').addClass("msg_error");
		$('#msg_response').slideDown();
		empty=true;	
		}
	
	if(empty==false)fm.submit()
	else document.getElementById('form_buttons').innerHTML = "<a href='#' onclick='formSignUp2()' class='link_variable'><span>Send</span></a>";
}

function formSignUp4()
	{
	replaceButton();
	resetForm('contact_form');
	empty 	= false;
	fm 		= document.contact_form;
	
	input_validator('fname','');
	input_validator('lname','');
	input_validator('add_1','');
	input_validator('postcode','');
	input_validator('fname2','');
	input_validator('lname2','');
	input_validator('add_5','');
	input_validator('postcode2','');
	input_validator('email','');
	input_validator('tel','');
	input_validator('caravan','');
	input_validator('date','');
	input_validator('vin','');
	input_validator('captcha','');
		
	if($('#captcha').val()!=get_cookie('security_code') && empty==false)
		{
		$('#msg_response').html("Please ensure you have entered the security code correctly at the bottom of the form");
		$('#msg_response').addClass("msg_error");
		$('#msg_response').slideDown();
		empty=true;	
		}
	
	if(empty==false)fm.submit()
	else document.getElementById('form_buttons').innerHTML = "<a href='#' onclick='formSignUp2()' class='link_variable'><span>Send</span></a>";
}

// 05. replaceButton
//------------------------------------------------------------------------------------------

function replaceButton()
	{
	document.getElementById('form_buttons').innerHTML = "<img src='/images/2010/general/eld_sending.gif' alt='Sending' />";
	}


// 06. resetForm
//------------------------------------------------------------------------------------------

function resetForm(obj)
	{
	$('.input_box').removeClass('input_warning');
	$('textarea').removeClass('input_warning');
	$('.warning').addClass('required');
	$('.warning').removeClass('warning');
	$('.hidden').show();
	$('#msg_response').hide();
	}


// 07. input_validator
//------------------------------------------------------------------------------------------
function sec_validator(id,size)
	{
	if($('#'+id).val()!="")
		{
		if(empty == false)
			{
			$('#msg_response').html("Please ensure you have entered all the required information");
			$('#msg_response').addClass("msg_error"+size);
			$('#msg_response').slideDown();
			}
		$('#'+id+' ~ span.required').addClass("warning");
		$('#'+id+' ~ span.hidden').hide();
		$('.warning').removeClass("required");
		$('#'+id).addClass('input_warning');
		empty=true;
		}
	}
	
function input_validator(id,size)
	{
	if($('#'+id).val()=="")
		{
		if(empty == false)
			{
			$('#msg_response').html("Please ensure you have entered all the required information");
			$('#msg_response').addClass("msg_error"+size);
			$('#msg_response').slideDown();
			}
		$('#'+id+' ~ span.required').addClass("warning");
		$('#'+id+' ~ span.hidden').hide();
		$('.warning').removeClass("required");
		$('#'+id).addClass('input_warning');
		empty=true;
		}
	}


// 08. email_validator
//------------------------------------------------------------------------------------------

function email_validator(obj,size)
	{
	var emailStr 	= $('#'+obj).val()
	var emailPat	= /^(.+)@(.+)$/;
	var specialChars= "\\(\\)!£$%^&*()+='#~?<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars	= "\[^\\s" + specialChars + "\]";
	var quotedUser	= "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom		= validChars + '+';
	var word		= "(" + atom + "|" + quotedUser + ")";
	var userPat		= new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat	= new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray	= emailStr.match(emailPat)
	if ((matchArray==null) && empty==false){message("Email address seems incorrect (check @ and .'s)",obj,size)}
	if (empty==false){var user=matchArray [1];var domain=matchArray [2];if (user.match(userPat)==null){message("The username doesn't seem to be valid.",obj)}}
	if (empty==false){var IPArray=domain.match(ipDomainPat);if (IPArray!=null){for (var j=1;j<=4;j++){if (IPArray[j]>255){message("Destination IP address is invalid!",obj,size)}}}}
	if (empty==false){var domainArray=domain.match(domainPat);if (domainArray==null){message("The domain name doesn't seem to be valid.",obj,size)}}
	if (empty==false){var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3){message("The address must end in a three-letter domain, or two letter country.",obj,size)}}
	if ((len<2) && empty==false){message("This address is missing a hostname!",obj,size)}
	}


// 09. message
//------------------------------------------------------------------------------------------

function message(msg,id,size){

	if(empty == false){
		$('#msg_response').html("Please ensure you have entered all the required information");
		$('#msg_response').addClass("msg_error"+size);
		$('#msg_response').slideDown();
	}
	$('#'+id+' ~ span.required').addClass("warning");
	$('#'+id+' ~ span.hidden').hide();
	$('.warning').removeClass("required");
	$('#'+id).addClass('input_warning');
	empty=true;

}

// 10. Rating Effects
//------------------------------------------------------------------------------------------

function ratingHover(num){
	for (i = 1; i<=5; i++){
		document.getElementById("star_"+i).src = '/images/2010/general/icon_nostar.jpg';
	}
	for (i = 1; i<=num; i++){
		document.getElementById("star_"+i).src = '/images/2010/general/icon_star.jpg';
	}		
}
function ratingOut2(){
	window.setTimeout('ratingOut()', 1000);
}
function ratingOut(){
	for (i = 1; i<=5; i++){
		document.getElementById("star_"+i).src = '/images/2010/general/icon_nostar.jpg';
	}
	var selected = document.getElementById("rating_num").value;
	for (i = 1; i<=selected; i++){
		document.getElementById("star_"+i).src = '/images/2010/general/icon_star.jpg';
	}
}
function ratingDown(num){
	document.getElementById("rating_num").value = num;
}


// 11. toggleBuyersGuide
//------------------------------------------------------------------------------------------

function toggleBuyersGuide(id,thisid){

	obj = $('#tblcolnum').val()
	obj = parseInt(obj)
	
	$('#msg_response').hide();
	$('#tbl_comparison').show();
	
	if($('.'+id).is(':hidden')){
		if(obj >= 4){
			$('#msg_response').html("Only 4 models can be shown at one time, please deselect a model to select a new one");
			$('#msg_response').addClass("msg_error");
			$('#msg_response').slideDown();
			$('#'+thisid).attr("checked","");
		}else{
			$('.'+id).show();
			$('#tblcolnum').val(obj+1);
			$('#'+thisid).attr("checked","checked");
		}
	}else{
		$('.'+id).hide();
		$('#tblcolnum').val(obj-1);
		$('#'+thisid).attr("checked","");
		if((obj-1) == 0){
			$('#tbl_comparison').hide();
		}
	}

}

// 12. hideColumn
//------------------------------------------------------------------------------------------

function hideColumn(obj){	
	$('.'+obj).hide();
}

function hideColumns(objArray){
	obj = objArray.split(",");for(i=0;i<=obj.length;i++){$('.'+obj[i]).hide();}
}


// 13. toggleOptions
//------------------------------------------------------------------------------------------

function toggleOptions(id){
	$("#"+id+" ~ div").toggle();
}

// 14. Get Cookie
//------------------------------------------------------------------------------------------
function get_cookie(Name) 
	{
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0) 
		{
		offset = document.cookie.indexOf(search)
		// if cookie exists
		if (offset != -1) 
			{ 
			offset += search.length
			// set index of beginning of value
			end = document.cookie.indexOf(";", offset);
			// set index of end of cookie value
			if (end == -1) end = document.cookie.length;
			returnvalue=unescape(document.cookie.substring(offset, end))
			}
		}
 	return returnvalue;
	}

// 100. Drop Down Menus
//------------------------------------------------------------------------------------------

var timeout	= 500;
var timein = 0;
var closetimer	= 0;
var currentSub = 0;
var opentimer = 0;


function subOpen(id){
	cancelClose();
	opentimer = window.setTimeout('subOpen2(\''+id+'\')', timein);
	timein = 500;
}

function subOpen2(id){	
	if(opentimer){
		if(currentSub) currentSub.style.display = "none";
		currentSub = document.getElementById(id);
		currentSub.style.display = "block";
		var links = document.getElementById(id).parentNode.parentNode.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++){
			links[i].id = "";
		}
		var links = document.getElementById(id).parentNode.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++){
			links[i].id = "nav_hover";
		}
	}	
}

function subClose(){
	if(currentSub){
		var currentlink = document.getElementById("nav_hover");
		currentlink.id = "";
		currentSub.style.display = "none";
	}
}

function subCloseTimer(){	
	closetimer = window.setTimeout(subClose, timeout);
}

function cancelClose(){
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function subCancelClose(){
	subCancelOpen()
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function subCancelOpen(){
	if(opentimer){
		window.clearTimeout(opentimer);
		opentimer = null;
	}
}

document.onclick = subClose;

// 101. Zebra Table
//------------------------------------------------------------------------------------------

var stripe = function() 
	{
	//BJD start up event	
	input_btn()
	tab_format()
	
	$('#tours').change(function(){$t=$(this).attr('value');$('#t360').attr('src',$t)});
	
	if(location.hash)toggleTabs(location.hash.replace('#',''))
	
	//
	var tables = document.getElementsByTagName("table");  
	
	for(var x=0;x!=tables.length;x++){
	var table = tables[x];
	if (! table) { return; }
	
	var tbodies = table.getElementsByTagName("tbody");
	
	for (var h = 0; h < tbodies.length; h++) {
	  var even = true;
	  var trs = tbodies[h].getElementsByTagName("tr");
	  
	  for (var i = 0; i < trs.length; i++) {
		trs[i].onmouseover=function(){
		  this.className += " ruled"; return false
		}
		trs[i].onmouseout=function(){
		  this.className = this.className.replace("ruled", ""); return false
		}
		
		if(even)
		  trs[i].className += " even";
		
		even = !even;
	  }
	}
	}
}

window.onload = stripe;

Shadowbox.init({
    // skip the automatic setup again, we do this later manually
    skipSetup: true
});

//if(location.href=='http://www.elddis.co.uk')
//	{
		
$(document).ready(function(){
	
	
	
	// A. Latest News
	//------------------------------------------------------------------------------------------

    if($('#js-news').length > 0){
		$(function () {
			$('#js-news').ticker({
				titleText: '<a href="/news.html">Elddis News</a>'
			});
		});
	}
	
	Shadowbox.setup("a.thickbox",{
		gallery:    "Gallery"		
		});
	Shadowbox.setup(".video a.thickbox",{
		gallery:    "Gallery",
        height:     385,
        width:      513
    });
	
	
	
	// B. Review Cycle
	//------------------------------------------------------------------------------------------	
	
	
	$(function() {
		// run the code in the markup!
		eval($('.index-reviews ul')
			.cycle({
				fx:			'fade',
				speed:  	2500,
				timeout:  	7000,
				pager:  	'.review-paging'
		}));
	});	

	
});

//	}
	
/*News Ticker*/
(function(a){a.fn.ticker=function(b){var c=a.extend({},a.fn.ticker.defaults,b);var d="#"+a(this).attr("id");var e=a(this).get(0).tagName;return this.each(function(){function o(c){m();switch(c){case"prev":if(b.position==0){b.position=f(b.newsArr)-2}else if(b.position==1){b.position=f(b.newsArr)-1}else{b.position=b.position-2}a(b.dom.titleElem).html(b.newsArr["item-"+b.position].type);a(b.dom.contentID).html(b.newsArr["item-"+b.position].content);break;case"next":a(b.dom.titleElem).html(b.newsArr["item-"+b.position].type);a(b.dom.contentID).html(b.newsArr["item-"+b.position].content);break}if(b.position==f(b.newsArr)-1){b.position=0}else{b.position++}}function n(){b.play=true;b.paused=false;l()}function m(){b.play=false;a(b.dom.tickerID+","+b.dom.revealID+","+b.dom.titleID+","+b.dom.titleElem+","+b.dom.revealElem+","+b.dom.contentID).stop(true,true);a(b.dom.revealID+","+b.dom.revealElem).hide();a(b.dom.wrapperID).find(b.dom.titleID+","+b.dom.titleElem).show().end().find(b.dom.contentID).show()}function l(){if(b.play){a(b.dom.contentID).delay(c.pauseOnItems).fadeOut(c.fadeOutSpeed);if(c.displayType=="fade"){a(b.dom.contentID).fadeOut(c.fadeOutSpeed,function(){a(b.dom.wrapperID).find(b.dom.revealElem+","+b.dom.contentID).hide().end().find(b.dom.tickerID+","+b.dom.revealID).show().end().find(b.dom.tickerID+","+b.dom.revealID).removeAttr("style");j()})}else{a(b.dom.revealID).hide(0,function(){a(b.dom.contentID).fadeOut(c.fadeOutSpeed,function(){a(b.dom.wrapperID).find(b.dom.revealElem+","+b.dom.contentID).hide().end().find(b.dom.tickerID+","+b.dom.revealID).show().end().find(b.dom.tickerID+","+b.dom.revealID).removeAttr("style");j()})})}}else{a(b.dom.revealElem).hide()}}function k(){if(b.play){var d=a(b.dom.titleElem).width()+20;a(b.dom.revealID).css(c.direction,d+"px");if(c.displayType=="fade"){a(b.dom.revealID).hide(0,function(){a(b.dom.contentID).css(c.direction,d+"px").fadeIn(c.fadeInSpeed,l)})}else if(c.displayType=="scroll"){}else{a(b.dom.revealElem).show(0,function(){a(b.dom.contentID).css(c.direction,d+"px").show();animationAction=c.direction=="right"?{marginRight:distance+"px"}:{marginLeft:distance+"px"};a(b.dom.revealID).css("margin-"+c.direction,"0px").delay(20).animate(animationAction,time,"linear",l)})}}else{return false}}function j(){b.contentLoaded=true;a(b.dom.titleElem).html(b.newsArr["item-"+b.position].type);a(b.dom.contentID).html(b.newsArr["item-"+b.position].content);if(b.position==f(b.newsArr)-1){b.position=0}else{b.position++}distance=a(b.dom.contentID).width();time=distance/c.speed;k()}function i(){if(b.contentLoaded==false){if(c.ajaxFeed){if(c.feedType=="xml"){a.ajax({url:c.feedUrl,cache:false,dataType:c.feedType,async:true,success:function(a){count=0;for(var d=0;d<a.childNodes.length;d++){if(a.childNodes[d].nodeName=="rss"){xmlContent=a.childNodes[d]}}for(var e=0;e<xmlContent.childNodes.length;e++){if(xmlContent.childNodes[e].nodeName=="channel"){xmlChannel=xmlContent.childNodes[e]}}for(var h=0;h<xmlChannel.childNodes.length;h++){if(xmlChannel.childNodes[h].nodeName=="item"){xmlItems=xmlChannel.childNodes[h];var i,k=false;for(var l=0;l<xmlItems.childNodes.length;l++){if(xmlItems.childNodes[l].nodeName=="title"){i=xmlItems.childNodes[l].lastChild.nodeValue}else if(xmlItems.childNodes[l].nodeName=="link"){k=xmlItems.childNodes[l].lastChild.nodeValue}if(i!==false&&i!=""&&k!==false){b.newsArr["item-"+count]={type:c.titleText,content:'<a href="'+k+'">'+i+"</a>"};count++;i=false;k=false}}}}if(f(b.newsArr<1)){g("Couldn't find any content from the XML feed for the ticker to use!");return false}j();b.contentLoaded=true}})}else{g("Code Me!")}}else if(c.htmlFeed){if(a(d+" LI").length>0){a(d+" LI").each(function(d){b.newsArr["item-"+d]={type:c.titleText,content:a(this).html()}});j()}else{g("Couldn't find HTML any content for the ticker to use!");return false}}else{g("The ticker is set to not use any types of content! Check the settings for the ticker.");return false}}}function h(){a(b.dom.wrapperID).append('<div id="'+b.dom.tickerID.replace("#","")+'"><div id="'+b.dom.titleID.replace("#","")+'"><span><!-- --></span></div><p id="'+b.dom.contentID.replace("#","")+'"></p><div id="'+b.dom.revealID.replace("#","")+'"><span><!-- --></span></div></div>');a(b.dom.wrapperID).removeClass("no-js").addClass("has-js "+c.direction);a(b.dom.tickerElem+","+b.dom.contentID).hide();if(c.controls){a(b.dom.controlsID).live("click mouseover mousedown mouseout mouseup",function(c){var d=c.target.id;if(c.type=="click"){switch(d){case b.dom.prevID.replace("#",""):b.paused=true;a(b.dom.playPauseID).addClass("paused");o(d);break;case b.dom.nextID.replace("#",""):b.paused=true;a(b.dom.playPauseID).addClass("paused");o(d);break;case b.dom.playPauseID.replace("#",""):if(b.play==true){b.paused=true;a(b.dom.playPauseID).addClass("paused");m()}else{b.paused=false;a(b.dom.playPauseID).removeClass("paused");n()}break}}else if(c.type=="mouseover"&&a("#"+d).hasClass("controls")){a("#"+d).addClass("over")}else if(c.type=="mousedown"&&a("#"+d).hasClass("controls")){a("#"+d).addClass("down")}else if(c.type=="mouseup"&&a("#"+d).hasClass("controls")){a("#"+d).removeClass("down")}else if(c.type=="mouseout"&&a("#"+d).hasClass("controls")){a("#"+d).removeClass("over")}});a(b.dom.wrapperID).append('<ul id="'+b.dom.controlsID.replace("#","")+'"><li id="'+b.dom.playPauseID.replace("#","")+'" class="controls"></li><li id="'+b.dom.prevID.replace("#","")+'" class="controls"></li><li id="'+b.dom.nextID.replace("#","")+'" class="controls"></li></ul>')}if(c.displayType!="fade"){a(b.dom.contentID).mouseover(function(){if(b.paused==false){m()}}).mouseout(function(){if(b.paused==false){n()}})}i()}function g(a){if(c.debugMode){if(window.console&&window.console.log){window.console.log(a)}else{alert(a)}}}function f(a){var b=0,c;for(c in a){if(a.hasOwnProperty(c))b++}return b}var b={position:0,time:0,distance:0,newsArr:{},play:true,paused:false,contentLoaded:false,dom:{contentID:"#ticker-content",titleID:"#ticker-title",titleElem:"#ticker-title SPAN",tickerID:"#ticker",wrapperID:"#ticker-wrapper",revealID:"#ticker-swipe",revealElem:"#ticker-swipe SPAN",controlsID:"#ticker-controls",prevID:"#prev",nextID:"#next",playPauseID:"#play-pause"}};if(e!="UL"&&e!="OL"&&c.htmlFeed===true){g("Cannot use <"+e.toLowerCase()+"> type of element for this plugin - must of type <ul> or <ol>");return false}c.direction=="rtl"?c.direction="right":c.direction="left";h();})};a.fn.ticker.defaults={speed:.1,ajaxFeed:false,feedUrl:"",feedType:"xml",displayType:"reveal",htmlFeed:true,debugMode:true,controls:true,titleText:"Latest",direction:"ltr",pauseOnItems:3e3,fadeInSpeed:600,fadeOutSpeed:300}})(jQuery)

