var film = new Array();
var qs = new Array();
var filmCount;
var pointer;
var filmIndex = 0;
var flmpos = 0;

function fnInitFilmstrip(page) {
  switch (page){
    case 'infinity': 
      film[0] = new Array();
        film[0]['img'] = 'infinity/legPads.jpg';
        film[0]['data'] = '';
        film[0]['alt'] = 'Articulation (Hip Rings)';
      film[1] = new Array();
        film[1]['img'] = 'infinity/reserveFlap.jpg';
        film[1]['data'] = '';
        film[1]['alt'] = 'Easy to reach AAD controls';
      film[2] = new Array();
        film[2]['img'] = 'infinity/partyStripes.jpg';
        film[2]['data'] = '';
        film[2]['alt'] = 'Three main flap designs';
      film[3] = new Array();
        film[3]['img'] = 'infinity/embroidery.jpg';
        film[3]['data'] = '';
        film[3]['alt'] = 'Embroidery';
      film[4] = new Array();
        film[4]['img'] = 'infinity/handles.jpg';
        film[4]['data'] = '';
        film[4]['alt'] = 'Type 8 or Type 17 double layer chest strap';
      film[5] = new Array();
        film[5]['img'] = 'infinity/hookKnife.jpg';
        film[5]['data'] = '';
        film[5]['alt'] = '';
      film[6] = new Array();
        film[6]['img'] = 'infinity/rsl.jpg';
        film[6]['data'] = '';
        film[6]['alt'] = '';
      film[7] = new Array();
        film[7]['img'] = 'infinity/hiddenBridle.jpg';
        film[7]['data'] = '';
        film[7]['alt'] = '';
      film[8] = new Array();
        film[8]['img'] = 'infinity/numberedFlaps.jpg';
        film[8]['data'] = '';
        film[8]['alt'] = '';
      film[9] = new Array();
        film[9]['img'] = 'infinity/pullupCordPocket.jpg';
        film[9]['data'] = '';
        film[9]['alt'] = '';
      break;
    case 'infinity_features': 
      film[0] = new Array();
        film[0]['img'] = 'infinity/features/mainTray.jpg';
        film[0]['data'] = '';
        film[0]['alt'] = '';
      film[1] = new Array();
        film[1]['img'] = 'infinity/features/reserveTray.jpg';
        film[1]['data'] = '';
        film[1]['alt'] = '';
      film[2] = new Array();
        film[2]['img'] = 'infinity/features/secondaryRiserCover.jpg';
        film[2]['data'] = '';
        film[2]['alt'] = '';
      film[3] = new Array();
        film[3]['img'] = 'infinity/features/mainTuckTab.jpg';
        film[3]['data'] = '';
        film[3]['alt'] = '';
      film[4] = new Array();
        film[4]['img'] = 'infinity/features/tuckTabs.jpg';
        film[4]['data'] = '';
        film[4]['alt'] = '';
      film[5] = new Array();
        film[5]['img'] = 'infinity/features/rslChannel.jpg';
        film[5]['data'] = '';
        film[5]['alt'] = '';
      film[6] = new Array();
        film[6]['img'] = 'infinity/features/bridleCover.jpg';
        film[6]['data'] = '';
        film[6]['alt'] = '';
      break;
    case 'infinity_options':
      film[0] = new Array();
        film[0]['img'] = 'infinity/options/articulation.jpg';
        film[0]['data'] = '';
        film[0]['alt'] = '';
			film[1] = new Array();
        film[1]['img'] = 'infinity/options/cutins.jpg';
        film[1]['data'] = '';
        film[1]['alt'] = '';
      film[2] = new Array();
        film[2]['img'] = 'infinity/options/hardware.jpg';
        film[2]['data'] = '';
        film[2]['alt'] = '';
      film[3] = new Array();
        film[3]['img'] = 'infinity/options/risers.jpg';
        film[3]['data'] = '';
        film[3]['alt'] = '';
      film[4] = new Array();
        film[4]['img'] = 'infinity/options/pinstripes.jpg';
        film[4]['data'] = '';
        film[4]['alt'] = '';
      film[5] = new Array();
        film[5]['img'] = 'infinity/options/handles.jpg';
        film[5]['data'] = '';
        film[5]['alt'] = '';
      film[6] = new Array();
        film[6]['img'] = 'infinity/options/hookKnife.jpg';
        film[6]['data'] = '';
        film[6]['alt'] = '';
      break;
    case 'infinity_student':
      film[0] = new Array();
        film[0]['img'] = 'infinity/student/hingedBOC.jpg';
        film[0]['data'] = '';
        film[0]['alt'] = '';
      film[1] = new Array();
        film[1]['img'] = 'infinity/student/adjustableMLW.jpg';
        film[1]['data'] = '';
        film[1]['alt'] = '';
      film[2] = new Array();
        film[2]['img'] = 'infinity/student/teleLegpads.jpg';
        film[2]['data'] = '';
        film[2]['alt'] = '';
      film[3] = new Array();
        film[3]['img'] = 'infinity/student/cypresWin.jpg';
        film[3]['data'] = '';
        film[3]['alt'] = '';
      break;
    default :
      film[0] = new Array();
        film[0]['img'] = 'sale/7431.jpg';
        film[0]['data'] = '';
        film[0]['alt'] = '';
      film[1] = new Array();
        film[1]['img'] = 'sale/rig2.jpg';
        film[1]['data'] = '';
        film[1]['alt'] = '';
      film[2] = new Array();
        film[2]['img'] = 'sale/rig3.jpg';
        film[2]['data'] = '';
        film[2]['alt'] = '';
      film[3] = new Array();
        film[3]['img'] = 'sale/rig4.jpg';
        film[3]['data'] = '';
        film[3]['alt'] = '';
      film[4] = new Array();
        film[4]['img'] = 'sale/rig5.jpg';
        film[4]['data'] = '';
        film[4]['alt'] = '';
      break;
  }
  filmCount = film.length;

  
  fnParseQuerystring(location.search.substr(1));
  fnBuildFilmstrip();
}

function fnBuildFilmstrip() {
  for(i=0;i<4;i++) {
    pointer = (parseInt(filmIndex) - parseInt(flmpos)) + i;
		
		if(pointer < 0) {
			pointer = pointer + filmCount;
		}
    if(pointer >= filmCount) {
      pointer = pointer - filmCount;
    }
    
    document.getElementById('frame' + (i+1) + '').src = 'images/products/scroll/' + film[pointer]['img'];
    document.getElementById('frame' + (i+1) + 'num').title = '';
    if(film[pointer]['alt'] != '') {
      document.getElementById('frame' + (i+1) + 'num').title = film[pointer]['alt'];
    }
    document.getElementById('frame' + (i+1) + 'num').innerHTML = pointer + 1;
    
    switch(i) {
      case 0:
        document.filmstripForm.frame1id.value = pointer;
        break;
      case 1:
        document.filmstripForm.frame2id.value = pointer;
        break;
      case 2:
        document.filmstripForm.frame3id.value = pointer;
        break;
      case 3:
        document.filmstripForm.frame4id.value = pointer;
        break;
    }
  }
}

function next() {
  if(filmIndex == (filmCount - 1)) {
    filmIndex = 0;
  } else {
    filmIndex++;
  }
  fnBuildFilmstrip();
}

function prev() {
  if(filmIndex == 0) {
    filmIndex = (filmCount - 1);
  } else {
    filmIndex--;
  }
  fnBuildFilmstrip();
}

function fnFrameSelect(locString,inputId,flmpos) {
  frameId = document.filmstripForm.elements[inputId];
  fnRedirect(locString + 'film=' + frameId.value + '&flmpos=' + flmpos);
}

function fnParseQuerystring(querystring) {
  if(querystring.indexOf('&') == -1) {
    fnParseQsVal(querystring);
  } else {
    var subQuery;
    var end = querystring.indexOf('&');
    fnParseQsVal(querystring.substr(0,end));
    subQuery = querystring.substr((end + 1));
    fnParseQuerystring(subQuery);
  }
}

function fnParseQsVal(val) {
  var equalSign = val.indexOf('=');
  var varName = val.substr(0,(equalSign));
  var varValue = val.substr((equalSign + 1));
  qs[varName] = varValue;
  if(varName == 'film') {
    filmIndex = (parseInt(varValue));
  }
	if(varName == 'flmpos') {
    flmpos = (parseInt(varValue));
  }
}

function fnChangeClass(sender,className) {
  sender.className = className;
}

function fnRedirect(loc) {
  window.location = loc;
}


function fnScrollUp() {
  var content = document.getElementById('content');
  var currScroll = content.scrollTop;
  
  // Total Pages
    var xPages = document.getElementById('content').scrollHeight / 395;
    var totalPages = (Math.ceil(xPages));
  
  // Current Page Number
    var currPage = document.dataForm.pageId.value;
    if(currPage > 1) {
      currPage = (parseInt(currPage) - 1);
    }
    
    document.getElementById('pageNumbers').innerHTML = 'Page ' + currPage + ' of ' + totalPages;
  
  content.scrollTop = (currScroll - 395);
}

function fnScrollDown() {
  var content = document.getElementById('content');
  var currScroll = content.scrollTop;

  // Total Pages
    var xPages = content.scrollHeight / 395;
    var totalPages = (Math.ceil(xPages));
  
  // Current Page Number
    
  var currPage = document.dataForm.pageId.value;
    if(currPage < totalPages) {
      currPage = (parseInt(currPage) + 1);
    }
    
    
    
    document.getElementById('pageNumbers').innerHTML = 'Page ' + currPage + ' of ' + totalPages;
  
  content.scrollTop = (currScroll + 395);
}

function selectCountry(form) {
  if(form.country.value != '') {
    var addr = location.href;
    
    if(addr.indexOf('&country') == -1) {
      window.location = location.href + '&country=' + form.country.value;
    } else {
      var qsEnd = addr.indexOf('&country');
      var newLink = addr.substr(0,qsEnd);
      window.location = newLink + '&country=' + form.country.value;
    }
  }
}

function selectState(form) {
  if(form.state.value != '') {
    var querystring = new Array();
    var search = unescape(location.search);
    var search = search.substring(1, search.length);
    var search = search.split("&");

    var loop = 0;
    while (loop < search.length) {
      var inter = search[loop].split("=");
      var inter2 = inter[1];
      var inter3 = inter[0];
      search[loop] = inter2;
      querystring[inter3] = inter2;
      loop = loop + 1;
    }
    
    var addr = location.href;
    
    if(addr.indexOf('&state=') == -1) {
      window.location = location.href + '&state=' + form.state.value;
    } else {
      var qsEnd = addr.indexOf('&state');
      var newLink = addr.substr(0,qsEnd);
      window.location = newLink + '&state=' + form.state.value;
    }
  }
}

function fnGalleryPopup(xImg) {

	newwindow=window.open(xImg,'vse_gallery','scrollbars=yes,resizable=yes');
	if (window.focus) {newwindow.focus()}
	return false;

}

function fnValidateEmail(xForm) {
  // Declare Error String
    var errors = 'Errors:\n';
  
  // Declare result [boolean]
    var validEmail = true;
    
  // Declare the fields to evaluate
    var from = xForm.email_from.value;
    var subject = xForm.subject.value;
    var message = xForm.email_message.value;
    
  // Manually check each field.
  //  - Fields Cannot be empty
  //  - Fields [from] Can only contain valid characters [a-z][A-Z][0-9][.@]
  //  - Fields [subject] Can only contain valid characters [a-z][A-Z][0-9][,.;:!@#$%&*()[]{}?<>|\/"' -_+]
  //  - Fields [message] Can only contain valid characters [a-z][A-Z][0-9][,.;:!@#$%&*()[]{}?<>|\/"' -_+]
  
    // Test From Field
      var emailCheck = new Array();
      emailCheck = fnEcheck(from,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.@',true);
      if(from == '') {  // Test for empty value
        errors += ' - From field is empty.\n';
        validEmail = false;
      } else if(from == '< Your Email Address >') {
        errors += ' - From field needs to be filled in.\n';
        validEmail = false;
      } else if(emailCheck[0] == false) {
        errors += ' - From field ' + emailCheck[1] + '.\n';
        validEmail = false;
      }
      
    // Test Subject Field
      var subjectCheck = fnEcheck(subject,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.;:!@#$%&*()[]{}?<>|\/" -_+' + "'",false);
      if(subject == '') {  // Test for empty value
        errors += ' - Subject field is empty.\n';
        validEmail = false;
      } else if(subject == '< Subject >') {
        errors += ' - Subject field needs to be filled in.\n';
        validEmail = false;
      } else if(subjectCheck[0] == false) {
        errors += ' - Subject field ' + subjectCheck[1] + '.\n';
        validEmail = false;
      }
      
    // Test Message Field
      //alert(encodeURI(message));
      var messageCheck = fnEcheck(encodeURI(message),'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.;:!@#$%&*()[]{}?<>|\/" -_+' + "'",false);
      if(message == '') {  // Test for empty value
        errors += ' - Message field is empty.\n';
        validEmail = false;
      } else if(messageCheck[0] == false) {
        errors += ' - Message field ' + messageCheck[1] + '.\n';
        validEmail = false;
      }
  
  //alert('from: ' + from + '\nsubject: ' + subject + '\nmessage: ' + message);
  
  if(validEmail == true) {
    return true;
  } else {
    alert(errors);
    return false;
  }
}

function fnEcheck(str,alphabet,email) {
  var fail = new Array();
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	
	if(email) {
  	if (str.indexOf(at)==-1){
      fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
  	}
  
  	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
  	  fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
  	}
  
  	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
  	  fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
  	}
  
    if (str.indexOf(at,(lat+1))!=-1){
      fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
    }
    
    if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
      fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
    }
    
    if (str.indexOf(dot,(lat+2))==-1){
      fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
    }
    
    if (str.indexOf(" ")!=-1){
      fail[0] = false;
      fail[1] = 'Invalid Email Address';
  	  return fail;
    }
	}
  
  for (i=0; i<lstr; i++) {
    currChar = str.charAt(i);
    
    if(alphabet.indexOf(currChar) == -1) {
      fail[0] = false;
      fail[1] = 'contains invalid characters: "' + currChar + '"';
  	  return fail;
    }
  }

  fail[0] = true;
  fail[1] = '';
	return fail;
}