var CMSVauxhall = window.CMSVauxhall || {};

var selectedRow = null;
var doc = document;
var docFrm = doc.forms[0];
var currentImage = 1;
var success = true;
var emailArray = new Array();

function InvalidateElement(elem)
{
	success = false;
	elem.style.backgroundColor = "red";
	elem.style.color = "white";
	elem.style.fontWeight = "bold";
}

function ValidateElement(elem)
{
	elem.style.backgroundColor = "";
	elem.style.color = "";
	elem.style.fontWeight = "";
}

function ValidateForm()
{
	success = true;

	for(var i=0; i < docFrm.length; i++)
	{

		if(docFrm[i].name.substring(0, 1) != "c")continue;

		if(typeof docFrm[i].validate != "undefined" && docFrm[i].validate != "")
		{
			switch(docFrm[i].validate)
			{
				case "Required":
					if(docFrm[i].value.length < 1)
						InvalidateElement(docFrm[i]);
					else if(docFrm[i].value == "-1")
						InvalidateElement(docFrm[i]);
					else
						ValidateElement(docFrm[i]);
				break;
				case "Required, Number":
					if(docFrm[i].value.length < 1)
						InvalidateElement(docFrm[i]);
					else if(isNaN(docFrm[i].value))
						InvalidateElement(docFrm[i]);
					else
						ValidateElement(docFrm[i]);
				break;
				case "Required, Email":
					if(docFrm[i].value.length < 1)
						InvalidateElement(docFrm[i]);
					else if(!IsEmail(docFrm[i].value))
						InvalidateElement(docFrm[i]);
					else
						ValidateElement(docFrm[i]);
				break;
				case "Number":
					if(isNaN(docFrm[i].value) && docFrm[i].value.length > 0)
						InvalidateElement(docFrm[i]);
					else
						ValidateElement(docFrm[i]);
				break;
				case "Email":
					if(!IsEmail(docFrm[i].value) && docFrm[i].value.length > 0)
						InvalidateElement(docFrm[i]);
					else
						ValidateElement(docFrm[i]);
				break;
			}
		}
	}

	return success;
}

function NewsletterSignUp()
{
	if(!IsEmail(docFrm.NewsLetterEmailAddress.value))
	{
		InvalidateElement(docFrm.NewsLetterEmailAddress);
		return;
	}
	
	docFrm.action = "NewsletterSignUp.aspx";
	docFrm.submit();
}

function SubmitEnquiry(validate, pathAbove)
{
	if(typeof validate != "undefined" && validate == true)
		var valid = ValidateForm();

	if(!valid) return;

	if(typeof pathAbove != "undefined" && pathAbove == true)
		docFrm.action = "../EmailPage.aspx";
	else
		docFrm.action = "EmailPage.aspx";

	docFrm.submit();
}

function SwapImage(imageNumber, regNumber)
{
	if(currentImage == imageNumber)
	    return;

	var path = "/Content/Stock/" + regNumber + "_" + imageNumber + "_L.jpg";
	var mainImage = document.getElementById(document.forms[0].MainImageClientID.value);

	mainImage.style.filter="blendTrans(duration=1)";
	
	if (mainImage.filters.blendTrans.status == 2)
	    return;
	
	mainImage.filters.blendTrans.apply();
	mainImage.src = path;	
	mainImage.filters.blendTrans.play();
	currentImage = imageNumber;
}

function RequestInfo()
{
	var regNumber = docFrm.RegNumber.value;
	location.href = "RequestInfo.aspx?RegNumber=" + regNumber;
}

function PrintPage(isBudget)
{
	var vehicleId = docFrm.VehicleId.value;
	path = "PrintPage.aspx?ImageNumber=" + currentImage + "&VehicleId=" + vehicleId + "&Budget=" + isBudget
	ShowPopup(path, "PrintPage", 700, 500);
}

function IsEmail(email)
{
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

	return re.test(email)
}

function ShowPopup(path, title, width, height, top, left)
{
	var leftPosition;
	var topPosition;
	
	height = typeof height != "undefined" ? height : 400;
	width = typeof width != "undefined" ? width : 400;
	
	if(typeof top == "undefined")
		topPosition = (screen.height) ? (screen.height-height)/2 : 0;
	else
		topPosition = top;
		

	if(typeof left == "undefined")
		leftPosition = (screen.width) ? (screen.width-width)/2 : 0;
	else
		leftPosition = left;

	window.open(path, title, "scrollbars=yes,height="+ height +",width="+ width +",status=no,toolbar=no,menubar=no,location=no,resizable=no, top=" + topPosition + ", left=" + leftPosition);
}

function SortColumn(field, column)
{
	var order = docFrm.Order.value;

	if(field == docFrm.Sort.value)
	{
		if(order != "Desc")
			order = "Desc";
		else
			order = "";
	}
	else
		order = "";
	
	docFrm.Sort.value = field;
	docFrm.Order.value = order;
	docFrm.OrderColumn.value = column;
		
	docFrm.submit();
}

function ShowSortOrder(tableId)
{
	var t = doc.getElementById(tableId);

	if(docFrm.OrderColumn.value == "")return;
	
	var sortImages = doc.all["SortImg"];

	if(docFrm.OrderColumn.value != "")
	{
		if(docFrm.Order.value != "Desc")
			sortImages[docFrm.OrderColumn.value].src = "../Images/UpArrow.gif";
		else
			sortImages[docFrm.OrderColumn.value].src = "../Images/DownArrow.gif";
	}	
}

function ExpandDetails(srcElem, targetElem)
{
	targetElem = doc.getElementById(targetElem);
	var parentElem = srcElem;

	while(parentElem.tagName != "TR")
		parentElem = parentElem.parentElement;


	if(targetElem.style.display == "none")
	{
		targetElem.style.display = "block";
		srcElem.src = "../Images/Minus.gif";
		parentElem.className = "GridExpandedItem";
		//class="GridExpandedItem"

	}
	else
	{
		targetElem.style.display = "none";
		srcElem.src = "../Images/Plus.gif";
		parentElem.className = "GridRow";
	}
}

function PreviewImage(placeHolder)
{
	var srcElem = window.event.srcElement;
	if(srcElem.value.indexOf(".jpg") > 0)
		placeHolder.src = srcElem.value;
	else
		placeHolder.src = "../Content/StockImages/NoImageSmall.gif";
}

function ConfirmAction(question, method)
{
	if(!confirm(question))return false;
	
	eval(method);
	return true;
}

function HideButtons()
{
	for(var i=0; i < arguments.length; i++)
		arguments[i].style.display = "none";
}

function ShowButtons()
{
	for(var i=0; i < arguments.length; i++)
		arguments[i].style.display = "inline";
}

function ViewDetails(vehicleId, elem)
{
	var srcElem = elem;
	SelectRow(srcElem);
	var arr = new Array();
	arr = document.frames("VehicleDetailsFrame").document.location.href.split("?");
	document.frames("VehicleDetailsFrame").document.location.href = arr[0] + "?VehicleId=" + vehicleId;
	//document.all.VehicleDetailsFrame.src = "VehicleDetails.aspx?VehicleId=" + vehicleId;
}

function SelectRow(row)
{
	if(row == selectedRow) return;
	
	if(selectedRow != null)
	{
		for(var i=0; i < selectedRow.children.length; i++)
		{
			selectedRow.children[i].style.backgroundColor = "";	
		}
	}
	
	for(var i=0; i < row.children.length; i++)
	{
		row.children[i].style.backgroundColor = "whitesmoke";		
	}
	
	selectedRow = row;
}

function EditFormParams(elem, newValue, cancelButton)
{
	var hasElements = false;

	if(elem.clicked)
	{
		UpdateNoValidation();	
		return;
	}

	for(var i=0; i < docFrm.length; i++)
	{
		if(typeof(docFrm[i].ereadonly) == "undefined" || docFrm[i].ereadonly == "false")continue;

		docFrm[i].ereadonly = "false";
		hasElements = true;
	}
	
	if(hasElements)
	{
		elem.value = newValue;
		elem.clicked = true;
		cancelButton.style.display = "inline";
	}
}

function EditForm(targetElem, newValue, cancelButton)
{
	var hasElements = false;
	var elem = window.event.srcElement;

try
{
	if(elem.clicked)
	{
		Update();	
		return;
	}
	else if(docFrm.NewButton.clicked)
	{
		New();	
		return;
	}
}
catch(e){}

	for(var i=0; i < docFrm.length; i++)
	{
		if(typeof(docFrm[i].ereadonly) == "undefined" || docFrm[i].ereadonly == "false")continue;

		docFrm[i].ereadonly = "false";
		hasElements = true;
	}
	
	if(hasElements)
	{
		targetElem.value = newValue;
		elem.clicked = true;
		cancelButton.style.display = "inline";
		targetElem.style.display = "inline";
	}
}

function CancelForm(elem, newValue, saveButton)
{
	for(var i=0; i < docFrm.length; i++)
	{
		if(typeof(docFrm[i].ereadonly) == "undefined")continue;

		docFrm[i].ereadonly = "true";

		
		saveButton.value = newValue;
		saveButton.clicked = false;
		try{docFrm.NewButton.clicked = false;}catch(e){}

		elem.style.display = "none";
	}
	
	try{tab2.disabled = false;}catch(e){}
}

function ClearForm()
{
	for(var i=0; i < docFrm.elements.length; i++)
	{
		switch(docFrm.elements[i].type.toUpperCase())
		{
			case "SELECT-ONE":
				docFrm.elements[i].selectedIndex = 0;
				break;
			case "CHECKBOX":
				docFrm.elements[i].checked = false;
				break;
			case "TEXT":
				docFrm.elements[i].value = "";
				break;
			case "TEXTAREA":
				docFrm.elements[i].value = "";
				break;
			default :
				//alert(docFrm.elements[i].type.toUpperCase());
				break;
		}
	}
	
	SoldDate.innerText = "";
	UploadDate.innerText = "";
	docFrm.RegDate.value = "dd/mm/yyyy";
	docFrm.Image1.src = "../Content/StockImages/NoImageSmall.gif";
	tab2.disabled = true;
}

function UpdateNoValidation()
{
	var elem = doc.createElement("<input type='hidden' value='1' name='Update'>");
	docFrm.insertBefore(elem);
	window.event.srcElement.disabled = true;
	docFrm.submit();	
}

function Update()
{
	Page_ClientValidate();
	try{if(!Page_IsValid)return;}catch(e){}
	var elem = doc.createElement("<input type='hidden' value='1' name='Update'>");
	docFrm.insertBefore(elem);
	window.event.srcElement.disabled = true;
	docFrm.submit();
}

function New()
{
	Page_ClientValidate();
	try{if(!Page_IsValid)return;}catch(e){}
	var elem = doc.createElement("<input type='hidden' value='1' name='New'>");
	docFrm.insertBefore(elem);
	window.event.srcElement.disabled = true;
	docFrm.submit();
}

function Delete()
{
	var elem = doc.createElement("<input type='hidden' value='1' name='Delete'>");
	docFrm.insertBefore(elem);
	window.event.srcElement.disabled = true;
	docFrm.submit();
}


function MM_openBrWindow(theURL,winName,features)
{ 
  window.open(theURL,winName,features);
}

function ChangeEmailAddress(elem)
{
	var toEmail = docFrm["toAddress"];
	var ccEmail = docFrm["ccAddress"];
	var subject = docFrm["subject"];
	
	if(emailArray.length == 0)
		CreateNewEmailArray();
		
	for(var i=0; i < emailArray.length; i++)
	{
		if(elem.value == emailArray[i].Subject)
		{
			toEmail.value = emailArray[i].ToEmail;
			ccEmail.value = emailArray[i].CcEmail;
			subject.value = emailArray[i].Subject + "_Enquiry";
			//alert(toEmail.value + ":" + ccEmail.value + ":" + subject.value);
			return;
		}
	}
	
	// Just in case something went wrong.
	toEmail.value = "steve.mezzone@cmskidderminster.co.uk";
	ccEmail.value = "";
	subject.value = "General_Enquiry";
	
}

function CreateNewEmailArray()
{
	// Global Var
	var salesEmail = "sales@cmskidderminster.co.uk";
	var stevesEmail = "steve.mezzone@cmskidderminster.co.uk";
	var robsEmail = "rob.brettell@cmskidderminster.co.uk";
	var afterSalesEmail = "aftersales@cmskidderminster.co.uk";
	
	emailArray[0] = new EmailObject("New_Vehicles", salesEmail, stevesEmail);
	emailArray[1] = new EmailObject("Used_Vehicles", salesEmail, stevesEmail);
	emailArray[2] = new EmailObject("Van_Centre", salesEmail, stevesEmail);
	emailArray[3] = new EmailObject("Motability", salesEmail, stevesEmail);
	emailArray[4] = new EmailObject("Fleet", salesEmail, stevesEmail);
	emailArray[5] = new EmailObject("Aftersales", afterSalesEmail, stevesEmail);
	emailArray[6] = new EmailObject("Accident_Repair", afterSalesEmail, stevesEmail);
	emailArray[7] = new EmailObject("General_Contact", stevesEmail, robsEmail);
	emailArray[8] = new EmailObject("Website_Feedback", stevesEmail, "");	
}

function EmailObject(subject, toEmail, ccEmail)
{
	this.Subject = subject;
	this.ToEmail = toEmail;
	this.CcEmail = ccEmail;
}

CMSVauxhall.VehicleDetails = function(){
    return{
        init: function(){
            $('#VehicleImages').cycle({ 
                fx: 'fade', 
                pager:  '#DetailsTable', 
                pagerAnchorBuilder: function(idx, slide) { 
                    return '.VehicleDetailsImage:eq(' + idx + ')'; 
                } 
            });
            
        }
    }
}();