// ****************************************
// **          Portfolio Javascripts     **
// **  (C) Nick McGowan-Lowe 2005-2008   **
// **           nick[at]nml.uk.com       **
// ****************************************

var i = 0;
var j = 1;
var t;
var portfolio = 0;
var images = ["welcome"];
var clipping = ["0"];
var casestudy = ["0"];
var clientquote = ["0"];
var nextimage = new Image();
var pics = 1;
var slidespeed = 0;
var framecount = 0;
var answer;
var geog;
var id = gup("photograph");
var foldername = ["", "pr", "corporate", "industrial", "products", "editorial", "interiors", "marketing", "events", "website"];
var clippingon = 0;
var quoteon = 0;

// **** Define portfolio folders ****

var imagelist = ["0", "pr", "corporate", "industrial", "products", "editorial", "interiors", "marketing", "events", "website"];
imagelist["0"] = ["0"];

imagelist['pr'] = [
   // "100-0-XX-XXX",
   "120-1-XX-001", // dungeon
   "103-1-XX-XXX", // asa
   "129-1-XX-XXX", // ramsay master blender
   "115-1-XX-002", // mx
   "116-1-XX-XXX", // natural healing
   "117-1-XX-008", // paul petitt
   "128-1-XX-XXX", // monty
   "108-0-XX-011", // frazier
   "106-1-XX-XXX", // dag
   "101-1-XX-XXX", // aventi
   "109-1-XX-010", // robert graham
   "111-1-XX-XXX", // IF
   "114-1-XX-XXX", // mirec
   "118-1-XX-007", // scotmid
   "119-1-XX-XXX", // shore
   "121-1-XX-XXX", // wifi
   "122-1-XX-XXX", // coolstools
   "127-0-XX-XXX", // learn direct
   "102-1-XX-XXX", // glasgow the brand
   "125-1-XX-XXX", // scotent
   "124-1-XX-XXX", // milknet
   "113-1-XX-XXX", // memex
   "112-1-XX-XXX", // if liddell
   "110-1-XX-XXX", // fender sturrock
   "123-1-XX-XXX", // 5pm
   "105-1-XX-XXX" // carnegie
];

imagelist['corporate'] = [
   // "300-0-XX-XXX",
   "335-0-XX-XXX", // carol graham
   "334-0-XX-XXX", // colin mcclean svm 
   "338-0-XX-XXX", // firefly heads  
   "322-0-XX-XXX", // bulb
   "336-0-XX-XXX", // firefly heads
   "337-0-XX-XXX", // gerry o'donnell at tfg
   "117-1-XX-008", // pettit
   "308-0-XX-XXX", // dickson minto
   "311-0-XX-XXX", // aydin
   "303-0-XX-XXX", // Rolland
   "106-1-XX-XXX", // DG
   // "306-1-XX-XXX", // Morris furniture
   "307-0-XX-XXX", // Moet
   "310-0-XX-XXX", // aydin globe
   "331-0-XX-XXX", // lumison customers
   "301-0-XX-XXX", // tinson
   "109-1-XX-010", // robert graham
   "312-0-XX-XXX", // WJM
   "313-0-XX-XXX", // lauder
   "314-0-XX-XXX", // see glasgow
   "315-0-XX-XXX", // FMC technologies
   "316-0-XX-XXX", // espc board
   "118-1-XX-007", // scotmid ceo
   "318-0-XX-XXX", // steve hughes
   "321-0-XX-XXX", // celtic
   "324-1-XX-XXX", // charan gill 
   "325-1-XX-XXX", // QS mag 
   "326-1-XX-XXX", // HBOS
   "327-0-XX-XXX", // Lesley Collins
   "328-0-XX-XXX", // RBS lawyer 
   "329-1-XX-XXX", // Smith Scott Mullan
   "330-0-XX-XXX", // Shore design
   "332-0-XX-XXX", // KElly summersault
   "333-0-XX-XXX" // ITI

]; 

imagelist["industrial"] = [
   // "200-0-XX-XXX", // 
   "235-0-XX-XXX", // fmc girvan
   "226-0-XX-XXX", // blue circle grinder
   "230-0-XX-XXX", // star tanks
   "237-0-XX-XXX",  // weetabix
   "232-0-XX-XXX", // intercell
   "221-1-XX-XXX", // mechanic
   "202-0-XX-XXX", // pp
   "203-0-XX-XXX", // greenside
   "204-0-XX-XXX", // legal post
   "223-0-XX-XXX", // blue circle yellow
   "205-0-XX-006", // o2 keyboard
   "229-0-XX-XXX", // star unit
   "207-0-XX-006", // o2 red
   "208-0-XX-006", // o2 monitor
   "210-0-XX-XXX", // ethernet --
   "212-0-XX-XXX", // frazier red
   "213-0-XX-XXX", // core hub
   "214-0-XX-XXX", // rolland plans
   "216-0-XX-XXX", // livingston office
   "219-0-XX-XXX", // emhart warehouse
   "220-0-XX-XXX", // frazier technition
   "227-0-XX-XXX", // foseco worker
   "228-0-XX-XXX", // foseco pipes
   "231-0-XX-XXX", // star plant room
   "233-0-XX-XXX", // devro upright
   "234-0-XX-XXX", // devro wide
   "236-0-XX-XXX" // quinn glass
];

imagelist["products"] = [
   // "500-0-XX-XXX",
   "545-0-XX-XXX", // PRODUCT foseco
   "546-0-XX-XXX", // PRODUCT hendricks
   "526-1-XX-XXX", // lptent
   "547-0-XX-XXX", // PRODUCT zepf
   "515-0-XX-XXX", // PRODUCT moet
   "229-0-XX-XXX", // star unit
   "518-0-XX-XXX", // PRODUCT rose
   "503-0-XX-XXX", // PRODUCT whisky tbda
   "509-0-XX-XXX", // PRODUCT old pultney
   "519-0-XX-XXX", // PRODUCT carnation
   "521-0-XX-XXX", // PRODUCT strawberry
   "523-0-XX-XXX", // PRODUCT ds2
   "525-0-XX-XXX"  // PRODUCT salmon
]; 

// news will become editorial
imagelist["editorial"] = [
   // "600-0-XX-XXX",
   "619-0-XX-XXX", // fish  
   "325-1-XX-XXX", // QS mag 
   "633-0-XX-XXX", // street gang
   "631-0-XX-XXX",  // mcdonalds
   "634-1-XX-XXX", // beacons
   "629-0-XX-XXX", // hospital food
   "638-0-XX-XXX", // fireman drunk
   "642-0-XX-XXX",  // bd murphy
   "602-1-XX-XXX", // tall ships
   "635-0-XX-XXX", // labour victory
   "709-0-XX-XXX", // candis
   "604-0-XX-XXX", // remembrance
   "637-0-XX-XXX", // swab
   "636-1-XX-XXX", // polmont
   "324-1-XX-XXX", // charan gill 
   "612-0-XX-XXX", // dog show
   "616-0-XX-XXX", // port royal golf
   "707-0-XX-XXX", // atkinson
   "618-1-XX-XXX", // fox cub
   "617-0-XX-XXX", // goal
   "641-0-XX-XXX",  // mcdonalds stool
   "622-0-XX-XXX", // bereavement
   "621-0-XX-XXX", // fina diving
   "625-0-XX-XXX", // architect
   "639-1-XX-XXX", // barclays cover
   "640-1-XX-XXX",  // hbos
   "643-0-XX-XXX",  // bd masterclass
   "644-0-XX-XXX",  // barclays weir
   "708-0-XX-XXX", // binnie
   "704-0-XX-XXX", // newell
   "701-0-XX-XXX", // winner
   "702-0-XX-XXX", // kelly
   "323-0-XX-XXX", // scottish courage 
   "328-0-XX-XXX", // RBS lawyer 
   "332-0-XX-XXX" // KElly summersault 
];

imagelist["interiors"] = [
   // "500-0-XX-XXX",
   "534-1-XX-XXX", // clocktower
   "535-0-XX-XXX", // kitchen
   "543-1-XX-XXX", // tanfield 1
   "529-0-XX-XXX", // sterling 1
   "514-0-XX-XXX", // eri
   "528-0-XX-XXX", // manorlane
   "530-0-XX-XXX", // sterling 2
   "527-0-XX-XXX", // omni
   "505-0-XX-XXX", // usher hall
   "531-0-XX-XXX", // sterling 3
   "532-0-XX-XXX", // sterling 4
   "512-0-XX-XXX", // science centre
   "513-0-XX-XXX", // fm kitchen
   "517-0-XX-XXX", // carron bathroom
   "522-1-XX-XXX", // old course hotel
   "524-1-XX-XXX", // melville st
   "533-1-XX-XXX", // clocktower
   "536-0-XX-XXX", // mel kitchen
   "537-0-XX-XXX", // mel small bedroom
   "538-0-XX-XXX", // mel nice bedroom
   "539-0-XX-XXX", // old course
   "540-0-XX-XXX", // kitchen
   "541-0-XX-XXX", // bedroom
   "542-0-XX-XXX", // living room not great
   "544-1-XX-XXX" // tanfield 2
];

imagelist["marketing"] = [
   // "400-0-XX-XXX",
   "426-0-XX-XXX", // glenturret
   "427-0-XX-XXX", // l and p police
   "429-0-XX-XXX", // hhc small bottle
   "421-0-XX-XXX", // girl with globe
   "430-0-XX-XXX", // f grouse studio
   "418-0-XX-XXX", // end is near
   "428-0-XX-XXX", // hhc inside
   "401-1-XX-XXX", // espc cover
   "402-1-XX-XXX", // clydesdale bank
   "403-1-XX-XXX", // totseat
   "404-1-XX-XXX", // espc baby
   "405-1-XX-XXX", // clydesdale lawyer
   "406-1-XX-XXX", // one ticket
   "407-0-XX-005", // stella
   "408-0-XX-XXX", // qaws
   "409-0-XX-XXX", // waves
   "410-0-XX-XXX", // stirling castle
   "411-0-XX-XXX", // espc heads
   "412-1-XX-XXX", // lex
   "413-0-XX-XXX", // remax
   "414-0-XX-XXX", // c2
   "415-0-XX-XXX", // lumison onions
   "416-0-XX-XXX", // totsbots
   "417-0-XX-XXX", // glasgow city
   "526-0-XX-XXX", // lp tent
   "424-0-XX-XXX", // financial advisor
   "425-0-XX-XXX", // female lorry driver
   "419-0-XX-XXX", // police arrest
   "420-0-XX-XXX", // police nightclub
   "423-0-XX-XXX", // lex car flowers
   "422-0-XX-XXX" // castlecraig
];

imagelist["events"] = [
   // "800-0-XX-XXX",
   "801-0-XX-XXX",
   "802-0-XX-XXX",
   "803-0-XX-XXX",
   "103-0-XX-XXX",
   "102-1-XX-XXX",
   "112-1-XX-XXX",
   "407-0-XX-XXX",
   "111-1-XX-XXX",
   "804-0-XX-XXX",
   "805-0-XX-XXX",
   "806-0-XX-XXX",
   "807-0-XX-XXX",
   "808-0-XX-XXX"
];

imagelist["website"] = [
   // "900-0-XX-XXX",
   "901-1-XX-XXX",
   "902-1-XX-XXX",
   "903-1-XX-XXX",
   "333-0-XX-XXX",
   "526-1-XX-XXX", // lptent
   "203-1-XX-XXX",
   "329-1-XX-XXX",
   "904-0-XX-XXX"
];



// **** gup not written by nml ****
function gup( name ){
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null ) {
    return "";
  } else {
    return results[1];
  }
}

// ** parse URL to look for folder= and location=**

function directfolder()
{

// if photograph= defined, that comes ahead of other attributes
  if (id != ""){
    document.imagea.src = "/portfolio_files/" + id +".jpg";
    document.captiona.src = "/portfolio_files/caption" + id + ".gif";
    document.imagea.onmousedown = protect;
    return;
  }

// folder
  var folder = gup("folder");

  if ( folder !="pr" && folder !="industrial" && folder !="corporate" && folder !="products" && folder !="editorial" && folder !="interiors" && folder !="marketing" && folder !="events" && folder !="website"){
    folder = "";
    document.imagea.src = "/portfolio_files/welcome.jpg";
    return ""; 
  } else {
    switchportfolio(folder);
}
}

// ******************** Left arrow goes back an image ********************

// NOTE: (i == 0 || i == 1) changed (i == 0) also for j
// when intro slide taken out

function previmg(){

  if (portfolio != 0){

	if (i == 0){		
		i = pics - 1;
        } else {
		i--;
	    }
	
	if (j == 0){	
		j = pics - 1;
        } else {
		j--;	
	    }
  displayimage();
  }
framecount++;
}

// ******************** Right arrow goes forward an image ********************

function nextimg(){

// NOTE: i=1, j=1 changed to i=0 and j=0
// when intro slide taken out

if (portfolio){
	if (i == pics -1){
		i = 0;
	    } else {
		i++;
	    }
	
	if (j == pics -1){
        j = 0;		
        } else {
		j++;
	    }
  displayimage();
  }
framecount++;
}

// ******* What happens if you click on the main image *****

function protect() {

var msg = "You cannot copy this image by clicking on it.\r\n\n";

  if (clippingon || quoteon || !i) {

if (!id) {
      prompt(msg + "However, if you would like to send someone a direct link to this folder, you can use this URL:","http://www.nml.uk.com/portfolio?folder=" + portfolio);
} else {
prompt(msg + "However, if you want to send someone a direct link to this photograph, you can use this URL:","http://www.nml.uk.com/portfolio?photograph\=" + id);
}
      } else {
	  prompt(msg + "However, if you want to send someone a direct link to this photograph, you can use this URL:","http://www.nml.uk.com/portfolio?photograph\=" + images[i]);

       }
  return false;
}

// ******************** This protects the opening image ********************

function protectfirst() {
     document.imagea.onmousedown = protect;
}

// ***** Runs slideshow - started and stopped by slideshowtoggle ********* 

function runSlideShow(){

if (slidespeed == 3000){

  if (i == pics -1){
		i = 1;				
  } else {	
		i++;		
  } //end if i	
  	
  if (j == pics -1){
	   	j = 1;	
   } else {
		j++;
   } // end if j
		
document.imagea.onmousedown = protect;
document.imagea.src = "/portfolio_files/" + images[i] + ".jpg";
document.captiona.src = "/portfolio_files/caption" + images[i] + ".gif";
document.cliplogo.src = "/i/sb2_0.jpg";
document.cslogo.src = "/i/sb3_0.jpg";
document.quotelogo.src = "/i/sb4_0.jpg";
// nextimage.src = "/portfolio_files/" + images[j] + ".jpg";
nextimage.src = "/portfolio_files/" + imagelist[portfolio][j].substring(0,3); +".jpg";
t = setTimeout('runSlideShow()', slidespeed);

} // end if slidespeed
} // end function 

// ******************** Toggles slideshow on and off ******************** 

function slidetoggle() {

if (slidespeed == 3000){
	    slidespeed = 0;
		displayimage();
     } else {
        slidespeed = 3000;
		t = setTimeout('runSlideShow()', 3000);
		nextimg();
     }
}

// ******************** Toggles clipping if one available ******************** 

function seeclipping() {

document.imagea.src = "/i/400x400loader.gif";
if (clipping[i] == "1" && !slidespeed) {
framecount++;
  if (!clippingon) {
    document.imagea.src = "/portfolio_files/clipping" + images[i] + ".jpg";
    clippingon = 1;
  } else {
    document.imagea.src = "/portfolio_files/" + images[i] + ".jpg";
    clippingon = 0;
  } // end if clippingon

} // end if clipping
}

/// ******************** Toggles quote if available ******************** 

function seequote() {

document.imagea.src = "/i/400x400loader.gif";
if (clientquote[i] != "XXX" && !slidespeed) {
framecount++;
  if (!quoteon){
    document.imagea.src = "/portfolio_files/quote" + clientquote[i] + ".jpg";
    document.captiona.src = "/i/caption_blank.gif";
	quoteon = 1;
  } else {
    document.imagea.src = "/portfolio_files/" + images[i] + ".jpg";
    document.captiona.src = "/portfolio_files/caption" + images[i] + ".gif";
	quoteon = 0;
  }
}
}

// ******************** Links to case study if available ******************** 

function cslink(){

if (casestudy[i] != "XX" && !slidespeed) {
  answer = confirm("This will take you out of the Portfolios page to the Case Studies page. Are you sure you want to go yet ?");
    if (answer){
      self.location="/casestudy/"+casestudy[i]+".html";
    }
}
}

// ***** Shared function which displays new image ******************** 

function displayimage(){

// display loading gif straight away
document.imagea.src = "/i/400x400loader.gif";
document.captiona.src = "/i/400x50loader.gif";

// alert(portfolio + " " + i + " " + imagelist[portfolio][i]);
images[i] = imagelist[portfolio][i].substring(0,3);
images[j] = imagelist[portfolio][j].substring(0,3);
clipping[i] = imagelist[portfolio][i].substring(4,5);
casestudy[i] = imagelist[portfolio][i].substring(6,8);
clientquote[i] = imagelist[portfolio][i].substring(9,12);

quoteon = 0;
clippingon = 0;
document.imagea.onmousedown = protect;
if (!slidespeed){
  document.arrl.src="/i/port_bar_l.jpg";
  document.arrr.src="/i/port_bar_r.jpg";
} else {
  document.arrl.src="/i/port_bar_l_blank.jpg";
  document.arrr.src="/i/port_bar_r_blank.jpg";
}
document.imagea.src = "/portfolio_files/" + images[i] + ".jpg";
document.captiona.src = "/portfolio_files/caption" + images[i] + ".gif";
document.cliplogo.src = "/i/sb2_" + clipping[i] +".jpg";
document.slidelogo.src = "/i/sb1.jpg";
nextimage.src = "/portfolio_files/" + images[j] + ".jpg";

if (casestudy[i] == "XX"){
  document.cslogo.src = "/i/sb3_0.jpg";
} else {
  document.cslogo.src = "/i/sb3_1.jpg";
}

if (clientquote[i] == "XXX"){
  document.quotelogo.src = "/i/sb4_0.jpg";
} else {
  document.quotelogo.src = "/i/sb4_1.jpg";
}
}

// ******************** SWITCHPORTFOLIO ******************** 

function switchportfolio(k){

portfolio = k;
id = 0;
document.imagea.src = "/portfolio_files/loading.jpg";
slidespeed = 0;
var ts;

if (portfolio == "pr"){
     document.fpr.src = "/i/folder_on.gif";
     ts = 1;
} else {
     document.fpr.src = "/i/folder_off.gif";
}

if (portfolio == "corporate"){
     document.fcorporate.src = "/i/folder_on.gif";
     ts = 2;
} else {
     document.fcorporate.src = "/i/folder_off.gif";
}

if (portfolio == "industrial"){
     document.findustrial.src = "/i/folder_on.gif";
     ts = 3;
} else {
     document.findustrial.src = "/i/folder_off.gif";
}

if (portfolio == "products"){
     document.fproducts.src = "/i/folder_on.gif";
     ts = 4;
} else {
     document.fproducts.src = "/i/folder_off.gif";
}

if (portfolio == "editorial"){
     document.fnews.src = "/i/folder_on.gif";
     ts = 5;
} else {
     document.fnews.src = "/i/folder_off.gif";
}

if (portfolio == "interiors"){
     document.feditorialportraits.src = "/i/folder_on.gif";
     ts = 6;
} else {
     document.feditorialportraits.src = "/i/folder_off.gif";
}

if (portfolio == "marketing"){
     document.fmarketing.src = "/i/folder_on.gif";
     ts = 7;
} else {
     document.fmarketing.src = "/i/folder_off.gif";
}

if (portfolio == "events"){
     document.fevents.src = "/i/folder_on.gif";
     ts = 8;
} else {
     document.fevents.src = "/i/folder_off.gif";
}

if (portfolio == "website"){
     document.fwebsite.src = "/i/folder_on.gif";
     ts = 9;
} else {
     document.fwebsite.src = "/i/folder_off.gif";
}

var pgtitle = ["","PR","Corporate Portraits","Industrial","Products","Editorial","Interiors","Marketing","Conferences and Events","Websites"];
document.title="Portfolio > " + pgtitle[ts] +" > Nick McGowan-Lowe Photography";

pics = imagelist[portfolio].length;
images = new Array();
i = 0;
j = 1;
var tracker = getCookie("tracker");
if (framecount == 0 || framecount =="0"){  
// I know the above line is a wtf...
var trackerx = tracker + " -> " + portfolio;
} else {
var trackerx = tracker + "(x" + framecount + ") -> " + portfolio;
framecount = 0;
}
setCookie("tracker",trackerx, 86400,"/");
displayimage();

} // end switchportfolio function

// ******************* 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 ) );
}


// ******************** Javascript ends ******************** 