// JavaScript Document
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){ document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2]; }
}

var selectedImage = "thumb01";
function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
		MM_preloadImages(img.src);
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
	if(i == 2) selectedImage = args[2];
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
	  MM_preloadImages(img.src);
	  //alert(img.src);
  } }
}


//enlarge window
function enlargeWindow(pd_id){
theURL = 'http://www.dvs.co.uk/store/enlarge-p-'+pd_id+'-img-'+selectedImage+'.html';
winName = 'product';
width = 450;
height = 600;
scrolling = 'no';
 if (screen){
	leftPos=(screen.width/2)-(width/2);
	topPos=(screen.height/2)-(height/2);
 }else{
 	leftPos=0;
	topPos=0;
 }
 window.open(theURL,winName,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+scrolling+',resizable=0,width='+width+',height='+height+',left='+leftPos+',top='+topPos);
}
	
	
// Validate Form
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}



//quicklink
function quickSearch(form){
	url ='index-c-' + form +'.html';
	location.replace(url);
	}


//open in new window
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;


function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

//// OPENS POP-UP WINDOW CENTRE SCREEN ////
function openBrWindow(theURL,winName,width,height,scrolling) { //v2.0
 if (screen){
	leftPos=(screen.width/2)-(width/2);
	topPos=(screen.height/2)-(height/2);
 }else{
 	leftPos=0;
	topPos=0;
}
 window.open(theURL,winName,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+scrolling+',resizable=0,width='+width+',height='+height+',left='+leftPos+',top='+topPos);
}

/*function displayFlashContent(movieName,width, height, altImage){
	str = '<object type="application/x-shockwave-flash" data="' + movieName + '" width="' + width + '" height="' + height + '">';
	str += '<param name="movie" value="' + movieName + '" />';
	str += '<param name="wmode" value="transparent" />';
	str += '<img src="' + altImage + '" alt="" />';
	str += '</object>';	
    document.write(str);
}*/

// flash cookie
// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
//           - Wdy, DD-Mon-YYYY HH:MM:SS GMT
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments
function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
	//alert (curCookie);
	document.cookie = curCookie;
}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds
function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" + 
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"
function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

//// INSERT FLASH ELEMENT OR ALTERATIVE IF USER HASN'T THE CORRECT PLAYER////

function displayFlashContent(swf,width,height,altimage,urllink,params) {
//alert (swf+"  "+width+"  "+height+"  "+params+"  "+altimage+"  "+urllink+" );
	params.version = parseInt(params.version.substring(params.version.indexOf(".")-1));
	// does user have minimum player to view swf 
	if(myFlashPlayer<params.version){
		if (altimage.indexOf(".jpg")!= -1 || altimage.indexOf(".gif")!= -1){
			// no flash but alternative image specified
			if (urllink){
			document.write("<a href=\""+urllink+"\" ><img src=\""+altimage+"\" alt=\"\"></a>");
			}else{
			document.write("<img src=\""+altimage+"\" alt=\"\" >");
			}
		}else{
			if (altimage.indexOf(".js")!= -1){
				// no flash but javascript alternative specified
				insertJS(altimage);
			}else{
				if (altimage=="") {
					// no flash & no alternative
					//document.write("<p align=\"center\"><a href=\"javascript:GoGetFlash()\"><font color=\"#CCCCCC\" size=\"1\" face=\"Arial, Helvetica, sans-serif\">YOU REQUIRE FLASH PLAYER "+params.version+" TO VIEW THIS.<br>CLICK HERE TO DOWNLOAD THE LATEST FLASH PLAYER.</font></a></p>");
				}	
			}
		}
	}else{
		if(!params) params = new Object();
		if(!params.version) params.version = 6;
		// parse parameters
		var objectParams = "";
		var embedParams = "";
		for (var i in params) {
			objectParams += "<param name="+i+" value=\""+params[i]+"\">\n";
			embedParams += i+"="+params[i];
		}
		// write the object
		str = '<object type="application/x-shockwave-flash" data="' + swf + '" width="' + width + '" height="' + height + '">';
		str += '<param name="movie" value="' + swf + '" />';
		str += '<param name="wmode" value="transparent" />';
		str += '<img src="' + altimage + '" alt="" />';
		str += '</object>';
		document.write(str);
	}
}

function insertJS(URL) {
	document.write("<script src=\""+URL+"\" language=\"javascript\" type=\"text/javascript\"></script>");
}

function showNoScript() {
	document.write("This browser is not suitable to view this website.");
}	
function GoGetFlash(){
//alert ("delete");
	deleteCookie("myFlashPlayer");
	window.open("http://www.macromedia.com/go/getflashplayer");
}

//// CHECK COOKIE FOR FLASH PLAYER ////

function Check4FlashCookie(){
	myFlashPlayer = getCookie('myFlashPlayer');
	if (myFlashPlayer == null){
		Sniff4FlashPlayer();
		setCookie('myFlashPlayer', myFlashPlayer);
		//alert("set Cookie");
	}
	//alert("Player="+myFlashPlayer);
}

function Sniff4FlashPlayer(){
	// INTIALISE VARIABLES //
	maxFlashPlayer="20";//10,0,0,0
	myFlashPlayer=0;
	//// Find Flash Player Version! ////
	if(!supportedBrowser){myFlashPlayer=0;}
	if(NNpass || macIEpass){Flash_checkForPlugIn();}
	if(winIEpass){myFlashPlayer = (Flash_checkForActiveX());}
}

////  BROWSER DETECTION  ////

// Is this a Mac running Microsoft Internet Explorer V5+ or Opera
macIEpass = ((navigator.appVersion.indexOf("MSIE") != -1) && (navigator.appVersion.indexOf("Mac") != -1)) && (parseFloat(navigator.appVersion) >= 4) ? true : false; 
 
// Is this a PC running Microsoft Internet Explorer V4+
winIEpass = ((navigator.appName.indexOf("Microsoft") != -1) && (navigator.appVersion.indexOf("Windows") != -1)) && (parseFloat(navigator.appVersion) >= 4) ? true : false;
  
// Is this a Mac or PC running Netscape V4+ or a Mac running Safari
NNpass = ((navigator.appName == "Netscape") && (navigator.userAgent.indexOf("Mozilla") != -1) && (parseFloat(navigator.appVersion) >= 4)) ? true : false;
//  (navigator.javaEnabled())) ? true : false; Doesn't work with Mac Nav7+

supportedBrowser = (winIEpass || NNpass || macIEpass) ? true : false;
//alert ("Browser: Windows="+winIEpass+"  Nestcape="+NNpass+"  Mac IE="+macIEpass); -- for testing purposes
	
////  END BROWSER DETECTION  ////


//// FLASH DETECTION ////

function Flash_checkForPlugIn() {
  var plugin = (navigator.mimeTypes &&
  navigator.mimeTypes["application/x-shockwave-flash"]) ?
  navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
  if (plugin) {
    myFlashPlayer = parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) 
  }
}

// vbscript check for Flash ActiveX control in windows IE
if(supportedBrowser && winIEpass) {
  document.write('<scr' + 'ipt language="VBScript"\> \n');
  document.write('Function Flash_checkForActiveX()' + '\n');
  document.write('Dim hasPlayer, playerversion' + '\n' );
  document.write('hasPlayer = false' + '\n' );
  document.write('playerversion = 10' + '\n' );
  document.write('Do While playerversion >= 1' + '\n' );
  document.write('On Error Resume Next' + '\n');
  document.write('hasPlayer = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" & playerversion & \"\")))' + '\n' );
  document.write('If hasPlayer = true Then Exit Do' + '\n' );
  document.write('playerversion = playerversion - 1' + '\n');
  document.write('Loop' + '\n');
  document.write('Flash_checkForActiveX = playerversion' + '\n');
  document.write('End Function' + '\n');
  document.write('</scr' + 'ipt\> \n');
}

//// END FLASH DETECTION ////
