// global variables
var c = 1;
var reportClick = 0;
var blinker = null;

function getBaseDomain() {
  var href = document.location.href;
  var parts = href.split("\/");
  var domain = parts[2];
  return domain;
}

function getBaseUrl() {
  return location.protocol + '//' + getBaseDomain();
}

function getRandomVal(valLength) {
  var chars = 'abcdefghijklmnopqrstuvwxyz';
  var charLength = chars.length;
  var val = '';
  while(val.length < valLength) {
    var rIndex = Math.floor(Math.random() * charLength);
    val += chars.charAt(rIndex);
  }
  return val;
}

function RequestGET(url, func, asyncType) {
  var xmlhttp = null;
  if(document.all) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else {
	xmlhttp = new XMLHttpRequest();
  }
  // xmlhttp.async=asyncType
  xmlhttp.onreadystatechange = function(){ func(xmlhttp); };
  xmlhttp.open("GET", url, true);
  xmlhttp.send(null); // send document if needed
  return xmlhttp;
}

function handleClearMyReports(xmlhttp) {
  var status = xmlhttp.readyState;
  if(status == 4) {
    if(xmlhttp.status == 200) {
	  var lyr = document.getElementById('myreports');
	  if(lyr) { lyr.innerHTML = 'You currently don\'t have any saved reports.'; }
	}
  }
}

// invite friend
function clearMyReports() {
  if(reportClick == 0) {
    var url = getBaseUrl() + '/clearreports.php?type=clearreports&val=' + getRandomVal(15);
	reportClick++;
    RequestGET(url, handleClearMyReports, true);
  }
}

function doBlinkMsg() {
  var lyr = document.getElementById('invitesleft');
  var txt = (c++ % 2 == 0) ? '<BR>' : '<i><font color="#CC0000">Sending Invite...</font></i>';
  lyr.innerHTML =  txt;
  blinker = setTimeout("doBlinkMsg()", 500);
}

function disableButtons() {
  var form = document.forms[0];
  var args = disableButtons.arguments;
  for(var x=0; x<args.length; x++) {
    form.elements[args[x]].disabled = true;
  }
  return true;
}

function togglePriv(aObj, priv, type, formNumber) {
  var newtype = type * (type < 2) + 1;
  var form = document.forms['commands'];
  for(var x=0; x<form.elements.length; x++) {
    var el = form.elements[x];
	var privType = priv;
    if(el.name.indexOf(privType) > -1) {
	  var checkedStatus = (type == '1') ? true : false;
      form.elements[x].checked = checkedStatus;
	}
  }
  aObj.onclick=function() {
    togglePriv(aObj, priv, newtype, formNumber);
  }
}

function doCommand(action) {
  var form = document.forms['commands'];
  var isChecked = false;
  var msg = 'Are you sure you want to do this?';
  if(action == 'delete') {
    msg = 'Are you sure you want to delete all the selected items?';
  }
  for(var x=0; x<form.elements.length; x++) {
    var el = form.elements[x];
	if(el.name == 'actionIds[]' && el.checked) {
	  isChecked = true;
	  break;
	}
  }
  if(!isChecked) {
    alert('You have not selected any items.');
  }
  else if(confirm(msg)){
    setAction(form, action);
	form.submit();
  }
}

function confirmClick() {
  return confirm('Are you sure you want to do this?');
}

function command() {
  document.forms.commands.submit();
}

function disableSubmitButtons(form) {
  for(var x=0; x<form.elements.length; x++) {
    var el = form.elements[x];
	if(el.type == 'submit') {
	  el.disabled = true;
	}
  }
  return true;
}

function setAction(form, value) {
  form.elements['action'].value = value;
}

function changeIds(type, idListObjName, idAddObjName) {
  var form = document.forms[0];
  var listIds = form.elements[idListObjName];
  var listLength = listIds.options.length;
  var addIds = form.elements[idAddObjName];
  var addLength = addIds.options.length;
  var count = 0;
  if(type == 'add') {
    newList = [];
    for(x=0; x<listLength; x++) {
      var op = listIds.options[x];
      if(op.selected) {
	    var isFound = 0;
		for(y=0; y<addLength; y++) {
		  var op2 = addIds.options[y];
		  if(op.value == op2.value) {
		    isFound = 1;
		  }
		}
		if(!isFound) {
		  var tv = op.innerHTML;
		  tv = tv.replace(/&amp;/g, '&');
          addIds.options[addLength++] = new Option(tv, op.value);
		}
      }
	  //else {
	  //  newList[count++] = new Option(op.innerHTML, op.value);
	  //}
    }
    //listIds.options.length = 0;
    //for(x=0; x<newList.length; x++) {
    //  listIds.options[x] = newList[x];
    // }
  }
  else if(type == 'del') {
    var newAdd = [];
    for(x=0; x<addLength; x++) {
      var op = addIds.options[x];
      if(!op.selected) {
		var tv = op.innerHTML;
		tv = tv.replace(/&amp;/g, '&');
	    newAdd[count++] = new Option(tv, op.value);
	  }
    }
    addIds.options.length = 0;
    for(x=0; x<newAdd.length; x++) {
      addIds.options[x] = newAdd[x];
    }
  }
  return false;
}

function doForm(idsFieldName, idFieldStringName) {
  var form = document.forms[0];
  var idArray = []; 
  var count = 0;
  var ids = form.elements[idsFieldName];
  var idLength = ids.options.length;
  for(y=0; y<idLength; y++) {
    var op = ids.options[y];
    idArray[count++] = op.value;
  }
  form.elements[idFieldStringName].value = idArray.join(',');
}

function confirmDelete(display, msg) {
  return confirm('Are you sure you want delete the ' + msg + ' ' + display + '?');
}

function doZipSample() {
  var url = 'http://test.mixtapepass.com/sample_zip.html';
  var sample_zip = window.open(url, 'sample_zip', 'startX=100,startY=100,width=600,height=600,scrollbars=yes');
  sample_zip.focus();
}

function doTracklistSample() {
  var url = 'http://test.mixtapepass.com/sample_tracklist.html';
  var sample_tracklist = window.open(url, 'sample_tracklist', 'startX=100,startY=100,width=600,height=600,scrollbars=yes');
  sample_tracklist.focus();
}