// ****************************************
// **         Index Page Javascripts     **
// **   (C) Nick McGowan-Lowe 2005-2009  **
// **           nick[at]nml.uk.com       **
// ****************************************

// ******************** Opening variables ********************

var slideno = 0;
var nextslide = 1;
var t;
var nextimage;

var slidespeed = 5000

var slides = new Array()
slides[0] = new Array()
slides[0][0] = "117"
slides[0][1] = "quote002"
slides[0][2] = "214"
slides[0][3] = "quote004"
slides[0][4] = "120"
slides[0][5] = "quote001"
slides[0][6] = "524"
slides[0][7] = "quote005"
slides[0][8] = "521"
slides[0][9] = "quote007"
slides[0][10] = "216"
slides[0][11] = "quote011"
slides[0][12] = "327"
slides[0][13] = "quote012"
slides[0][14] = "619"
slides[0][15] = "quote013"
slides[0][16] = "410"
slides[0][17] = "quote008"
slides[0][18] = "415"
// ** 1 is for instant estimate page
slides[1] = new Array()
slides[1][0] = "521"
slides[1][1] = "quote001"
slides[1][2] = "514"
slides[1][3] = "quote002"
slides[1][4] = "123"
slides[1][5] = "quote003"
slides[1][6] = "325"
slides[1][7] = "quote004"
slides[1][8] = "327"
slides[1][9] = "quote005"
slides[1][10] = "335"
slides[1][11] = "quote006"
slides[1][12] = "114"
slides[1][13] = "quote007"
slides[1][14] = "619"
slides[1][15] = "quote008"
slides[1][16] = "116"
slides[1][17] = "quote009"
slides[1][18] = "421"
slides[1][19] = "quote011"
slides[1][20] = "229"
slides[1][21] = "quote012"
slides[1][22] = "208"
slides[1][23] = "quote013"
slides[1][24] = "216"
slides[1][25] = "quote014"
slides[1][26] = "638"
slides[1][27] = "quote015"
// ** 2 is generic medium
slides[2] = new Array()
slides[2][0] = "123m"
slides[2][1] = "216m"
slides[2][2] = "quote001m"
slides[2][3] = "229m"
slides[2][4] = "quote002m"
slides[2][5] = "325m"
slides[2][6] = "quote003m"
slides[2][7] = "327m"
slides[2][8] = "521m"
slides[2][9] = "quote005m"
slides[2][10] = "529m"
slides[2][11] = "801m"
// ** 8 is Stirling
slides[8] = new Array()
slides[8][0] = "410"
slides[8][1] = "128"
slides[8][2] = "619"
slides[8][3] = "335"
slides[8][4] = "116"
slides[8][5] = "510"
slides[8][6] = "803"
slides[8][7] = "407"
slides[8][8] = "605"
slides[8][9] = "619"
slides[8][10] = "127"
slides[8][11] = "631"
slides[8][11] = "808"
// ** 11 is Dundee
slides[11] = new Array()
slides[11][0] = "418"
slides[11][1] = "902"
slides[11][2] = "707"
slides[11][3] = "420"
slides[11][4] = "634"
slides[11][5] = "419"
// ** 12 is Edinburgh
slides[12] = new Array()
slides[12][0] = "120"
slides[12][1] = "214"
slides[12][2] = "524"
slides[12][3] = "801"
slides[12][4] = "901"
slides[12][5] = "202"
slides[12][6] = "327"
slides[12][7] = "325"
slides[12][8] = "514"
slides[12][9] = "203"
// ** 13 is Glasgow
slides[13] = new Array()
slides[13][0] = "512"
slides[13][1] = "102"
slides[13][2] = "702"
slides[13][3] = "804"
slides[13][4] = "333"
slides[13][5] = "322"
slides[13][6] = "103"
slides[13][7] = "602"
slides[13][8] = "106"
slides[13][9] = "324"
slides[13][10] = "633"
var nextimage = new Image()
var pictureset


// ******************** Runs slideshow  ********************

function runSlideShow(pst){

if (pst!=null){ 
      pictureset = pst;
}

if (pictureset==0){
           slidespeed = 7000;
} else {
           slidespeed = 3500;
}

var noofslides = slides[pictureset].length;
        
if (slideno == noofslides-1){
	slideno=0;	
} else {
	slideno++;	
	}
		
if (nextslide == noofslides-1){
	nextslide=0;		
} else {
	nextslide++;
	}
		
// opacity('slidepic', 0, 99.99, 500);

document.slidepic.src = "/portfolio_files/" + slides[pictureset][slideno] +".jpg";

nextimage.src = "/portfolio_files/" + slides[pictureset][nextslide] + ".jpg";

// opacity('slidepic', 99.99, 0, 500);

t = setTimeout('runSlideShow()', slidespeed);

}
// ******************** dayrate   ***********

// ratecard #1
// this is for PR, EXEC, INDUST, INTERIORS

var dayrate=[];
dayrate[1] = new Array();
dayrate[1][0]=[0,0,0,0,0];
dayrate[1][1]=[0,0,165,270,370];  // internal
dayrate[1][2]=[0,0,190,320,425];  // pr
dayrate[1][3]=[0,0,265,435,585];  // pr+
dayrate[1][4]=[0,0,310,500,650];  // mkt one
dayrate[1][5]=[0,0,380,565,790];  // mkt all
dayrate[1][6]=[0,0,0,0,0];  // trade mag inside
dayrate[1][7]=[0,0,0,0,0];  // trade mag cover+inside
dayrate[1][8]=[0,0,0,0,0];  // corp mag inside
dayrate[1][9]=[0,0,0,0,0];  // corp mag cover+inside
dayrate[1][10]=[0,0,0,0,0];  // events
dayrate[1][11]=[0,0,0,0,0];  // events +pr

// ratecard #2
// this is for STAFF PORTRAITS and PRODUCTS

dayrate[2] = new Array();
dayrate[2][0]=[0,0,0,0,0];
dayrate[2][1]=[0,155,265,435,585];  // internal
dayrate[2][2]=[0,155,265,435,585];  // pr
dayrate[2][3]=[0,155,265,435,585];  // pr+
dayrate[2][4]=[0,155,265,435,585];  // mkt one
dayrate[2][5]=[0,155,265,435,585];  // mkt all
dayrate[2][6]=[0,0,0,0,0];  // trade mag inside
dayrate[2][7]=[0,0,0,0,0];  // trade mag cover+inside
dayrate[2][8]=[0,0,0,0,0];  // corp mag inside
dayrate[2][9]=[0,0,0,0,0];  // corp mag cover+inside
dayrate[2][10]=[0,0,0,0,0];  // events
dayrate[2][11]=[0,0,0,0,0];  // events +pr

// ratecard #3
// this is for MAGAZINES

dayrate[3] = new Array();
dayrate[3][0]=[0,0,0,0,0];
dayrate[3][1]=[0,0,0,0,0];  // internal
dayrate[3][2]=[0,0,0,0,0];  // pr
dayrate[3][3]=[0,0,0,0,0];  // pr+
dayrate[3][4]=[0,0,0,0,0];  // mkt one
dayrate[3][5]=[0,0,0,0,0];  // mkt all
dayrate[3][6]=[0,0,225,375,500];  // trade mag inside
dayrate[3][7]=[0,0,300,500,650];  // trade mag cover+inside
dayrate[3][8]=[0,0,250,410,550];  // corp mag inside
dayrate[3][9]=[0,0,325,535,720];  // corp mag cover+inside
dayrate[3][10]=[0,0,0,0,0];  // events
dayrate[3][11]=[0,0,0,0,0];  // events +pr

// ratecard #4
// this is for EVENTS

dayrate[4] = new Array();
dayrate[4][0]=[0,0,0,0,0];
dayrate[4][1]=[0,0,0,0,0];  // internal
dayrate[4][2]=[0,0,0,0,0];  // pr
dayrate[4][3]=[0,0,0,0,0];  // pr+
dayrate[4][4]=[0,0,0,0,0];  // mkt one
dayrate[4][5]=[0,0,0,0,0];  // mkt all
dayrate[4][6]=[0,0,0,0,0];  // trade mag inside
dayrate[4][7]=[0,0,0,0,0];  // trade mag cover+inside
dayrate[4][8]=[0,0,0,0,0];  // corp mag inside
dayrate[4][9]=[0,0,0,0,0];  // corp mag cover+inside
dayrate[4][10]=[0,0,190,300,395];  // events
dayrate[4][11]=[0,0,210,340,450];  // events + pr

// ratecard #5
// this is for MKT

dayrate[5] = new Array();
dayrate[5][0]=[0,0,0,0,0];
dayrate[5][1]=[0,0,0,0,0];  // internal
dayrate[5][2]=[0,0,0,0,0];  // pr
dayrate[5][3]=[0,0,0,0,0];  // pr+
dayrate[5][4]=[0,0,310,500,650];  // mkt one
dayrate[5][5]=[0,0,380,565,790];  // mkt all
dayrate[5][6]=[0,0,0,0,0];  // trade mag inside
dayrate[5][7]=[0,0,0,0,0];  // trade mag cover+inside
dayrate[5][8]=[0,0,0,0,0];  // corp mag inside
dayrate[5][9]=[0,0,0,0,0];  // corp mag cover+inside
dayrate[5][10]=[0,0,0,0,0];  // events
dayrate[5][11]=[0,0,0,0,0];  // events +pr

// ******************** included post prod   ***********

var postprod=[];
postprod = new Array ();
postprod[1] = [0,0,10,20,30];
postprod[2] = [0,10,20,40,60]; // staff, products
postprod[3] = [0,0,10,20,30];
postprod[4] = [0,0,25,50,75]; // events
postprod[5] = [0,0,10,20,30];


// ******************** preloads last calculator data   ***********

function preld() {

var strCookieVal
        strCookieVal = getCookie("ratecard");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.ratecard.selectedIndex = strCookieVal;
       } 
         strCookieVal = getCookie("howlong");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.howlong.selectedIndex = strCookieVal;
       } 
        strCookieVal = getCookie("licence");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.licence.selectedIndex = strCookieVal;
       } 
        strCookieVal = getCookie("turnaround");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.turnaround.selectedIndex = strCookieVal;
       } 
        strCookieVal = getCookie("noofpics");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.noofpics.selectedIndex = strCookieVal;
       } 
        strCookieVal = getCookie("mileage");
     if (strCookieVal != null  && strCookieVal != '') {
          document.calc.mileage.selectedIndex = strCookieVal;
       } 
typechange();
} 

// ******************** click for estimate   ***********

function rateclck() {

var r = document.calc.ratecard.value;
var a = document.calc.howlong.value;
var b = document.calc.licence.value;
var c = document.calc.turnaround.value;
var d = document.calc.noofpics.value;
var e = document.calc.mileage.value;

if (r = "" || a == "" || b == "" || c == "" || d == "" || e == "" ){
alert('Please fill in all six questions for an online estimate');
return;
} else {
document.getElementById('hiddenuntilclicked').style.display = 'block';
}
}

// *********** client-side pre registration check **************

function ValidateForm(form) {

var chkstr = form.txtEmailto.value

if ((chkstr.indexOf(".") > 2) && (chkstr.indexOf("@") > 0)) {

return true;

} else {

alert('Please enter a valid email address')

return false;

}

// return (chkstr.indexOf(".") > 2) && (chkstr.indexOf("@") > 0);

}



















// ******************** type change  ********************
// type change is called when the type of photography changes
// and makes certain time and licence options unavailable.

function typechange(){

// disable 1/6 time period if no fee for that time
// works by checking to see if there is a fee listed
// for internal/6th of a day [r][1][1]

var r = document.calc.ratecard.value;
     if(dayrate[r][1][1] == "0"){
          document.calc.howlong.options[1].disabled = true;
          // is the newly disabled 1/6th option selected ?
          // if so select 1/3 day.
          if (document.calc.howlong.options[1].selected == true){
               document.calc.howlong.options[2].selected = true
          }
     } else {
          document.calc.howlong.options[1].disabled = false;
     } 

// disable licences which don't apply to this type of photography
// works by checking to see if there is a fee listed
// for licence "ii" for a full day , ie [r][ii][4]

var ii;

for (ii=1;ii<=11;ii++){

     if(dayrate[r][ii][4] == "0"){
          document.calc.licence.options[ii].disabled = true;
          // is the newly disabled 1/6th option selected ?
          // if so select the "Choose"
          if (document.calc.licence.options[ii].selected == true){
               document.calc.licence.options[0].selected = true;
          }
     } else {
          document.calc.licence.options[ii].disabled = false;
     } 

} // for

// add individual conditionals for certain type of photography

// a. if (type=PR) THEN (licence = PR)
if (document.calc.ratecard[1].selected == true){
     document.calc.licence.options[2].selected = true;
}

// b. if (type=corppub) THEN (licence = trademaginside)
if (document.calc.ratecard[5].selected == true){
     document.calc.licence.options[6].selected = true;
}

// c. if (type=events) THEN (licence=eventsinhouse)
if (document.calc.ratecard[6].selected == true){
     document.calc.licence.options[10].selected = true;
}

// d. if (type=marketing) THEN (licence=marketingone)
if (document.calc.ratecard[7].selected == true){
     document.calc.licence.options[4].selected = true;
}

// e. if (type=productstudio) THEN (mileage=studio) AND (disable the rest)
// ELSE disable studio and enable the rest
if (document.calc.ratecard[9].selected == true){
     document.calc.mileage.options[1].disabled = false;
     document.calc.mileage.options[1].selected = true;
     var jj = document.calc.mileage.options.length - 1;
     for (ii=2;ii<=jj;ii++){
          document.calc.mileage.options[ii].disabled = true;
     } // end for
} else {
     document.calc.mileage.options[1].disabled = true;
     var jj = document.calc.mileage.options.length - 1;
     for (ii=2;ii<=jj;ii++){
          document.calc.mileage.options[ii].disabled = false;
     } // end for
     if (document.calc.mileage.options[1].selected == true) {
          document.calc.mileage.options[0].selected = true;
     }
} // end if

ratecalc();

} // end function














// ******************** calculator  ********************


function ratecalc() {

var rr = document.calc.ratecard.selectedIndex;
var r = document.calc.ratecard.value;
setCookie("ratecard",rr,60*60*24*30);
var aa = document.calc.howlong.selectedIndex;
var a = document.calc.howlong.value;
setCookie("howlong",aa,60*60*24*30);
var bb = document.calc.licence.selectedIndex;
var b = document.calc.licence.value;
setCookie("licence",bb,60*60*24*30);
var cc = document.calc.turnaround.selectedIndex;
var c = document.calc.turnaround.value;
setCookie("turnaround",cc,60*60*24*30);
var dd = document.calc.noofpics.selectedIndex;
var d = document.calc.noofpics.value;
setCookie("noofpics",dd,60*60*24*30);
var ee = document.calc.mileage.selectedIndex;
var e = document.calc.mileage.value;
setCookie("mileage",ee,60*60*24*30);

if (r == "" || a == "" || b == "" || c == "" || d == "" || e == "" ){
// hide estimate fields to avoid confusion, then return
document.getElementById('incomplete').innerHTML = "Select from all of the boxes above to get your personalised estimate.";
document.getElementById('pricea').innerHTML = " --.--";
document.getElementById('priceb').innerHTML = " --.--";
document.getElementById('pricec').innerHTML = " --.--";
document.getElementById('pricep').innerHTML = " --";
document.getElementById('pricepi').innerHTML = " --";
document.getElementById('price').innerHTML = " --.--";
document.getElementById('discax').innerHTML = " --.--";
document.getElementById('discbx').innerHTML = " --.--";
document.getElementById('disccx').innerHTML = " --.--";
document.getElementById('discd').innerHTML = " --.--";
document.getElementById('discso').innerHTML = " --.--";

    if (r == ""){
    document.calc.ratecard.bgColor = "#ff0000";
    }

return;
}

document.getElementById('incomplete').innerHTML = "";

// calculate discount

var specialoffer = getCookie("specialoffer");
      if (specialoffer == "20"){
            var spoff = 0.2; // 20% discount
       } 
      if (specialoffer == "35"){
            var spoff = 0.35; // 35% discount
       } 
      if (specialoffer != "20" && specialoffer != "35"){
            var spoff = 0; // no discount
       } 



// turn d into "number of extra pics"

d = d - (postprod[r][a]);
if (d<0){ d=0 };

// --------------------------------------------------------------
// pricea = day rate combined with turnaround 
//
   var pricea = (dayrate[r][b][a]*c);
   var priceax = CurrencyFormatted(pricea);
   setCookie("pricea",priceax,60*60*24*30);
   document.getElementById('pricea').innerHTML = priceax;
// --------------------------------------------------------------
// if special offer, don't offer new customer discount (discb)
// 
   if (spoff == 0){
      var discb = (pricea * 0.10); // new customer discount
      var discbx = CurrencyFormatted(discb);
      document.getElementById('discb').innerHTML = discbx;
      var discf = 0;
   } else {
      var discb = 0;
      var discf = (pricea*spoff);
      var discfx = CurrencyFormatted(discf);
      document.getElementById('discso').innerHTML = discfx;
   }
   setCookie("discb",discbx,60*60*24*30);
   setCookie("discf",discfx,60*60*24*30);
// --------------------------------------------------------------
// priceb = additional post production
//
   var priceb = d*7;  // £7/image
   var pricebx = CurrencyFormatted(priceb);
   setCookie("priceb",pricebx,60*60*24*30);
   document.getElementById('pricepi').innerHTML = postprod[r][a];
   document.getElementById('pricep').innerHTML = d;
   document.getElementById('priceb').innerHTML = pricebx;
// --------------------------------------------------------------
// price c = mileage
//
   var pricec = (e*2*0.51); // 51ppm
   var pricecx = CurrencyFormatted(pricec);
   setCookie("pricec",pricecx,60*60*24*30);
   document.getElementById('pricec').innerHTML = pricecx;
// --------------------------------------------------------------
// price = subtotal price
//
   var price = (pricea + priceb + pricec + 28.00 + 7.10 - discf);
   var pricex = CurrencyFormatted(price);
   setCookie("price",pricex,60*60*24*30);
   document.getElementById('price').innerHTML = pricex;
// --------------------------------------------------------------
// disca = early payment discount
//
   var disca = price * 0.04;
   var discax = CurrencyFormatted(disca);
   setCookie("disca",discax,60*60*24*30);
   document.getElementById('disca').innerHTML = discax;
// --------------------------------------------------------------
// combined discounts
//
   var discd = disca + discb;
   var discdx = CurrencyFormatted(discd);
   setCookie("discd",discdx,60*60*24*30);
   document.getElementById('discd').innerHTML = discdx;
// --------------------------------------------------------------
// price after all possible discounts
//
   var discc = (price - discd);
   var disccx = CurrencyFormatted(discc);
   setCookie("discc",disccx,60*60*24*30);
   document.getElementById('discc').innerHTML = disccx;
}


function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function ebc(ffd) {

ffd.style.color = "white !important;";
if (ffd.defaultValue == ffd.value) {
   ffd.value = "";
}

}

function openpwdtab() {

document.getElementById('hiddenuntilclickedb').style.display = 'block';

}


// ******************* cookie scripts ********************

function setCookie(name,value,expires, options) {
   if (options===undefined) { options = {}; }
    if ( expires ) {
      var expires_date = new Date();
      expires_date.setDate(expires_date.getDate() + expires)
    }
   document.cookie = name+'='+escape( value ) +
      ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + 
      ( ( options.path ) ? ';path=' + options.path : '' ) +
      ( ( options.domain ) ? ';domain=' + options.domain : '' ) +
      ( ( options.secure ) ? ';secure' : '' );
}

function getCookie( name ) {
   var start = document.cookie.indexOf( name + "=" );
   var len = start + name.length + 1;
   if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
      return null;
   }
   if ( start == -1 ) return null;
   var end = document.cookie.indexOf( ';', len );
   if ( end == -1 ) end = document.cookie.length;
   return unescape( document.cookie.substring( len, end ) );
}

// ********** slideshow opacity ***********
// from http://brainerror.net/scripts/javascript/blendtrans/

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}
