
function DOM (id) {
    return document.getElementById(id);
}

function timeStamp() {
    var timestr = new Date().getTime();
    return timestr;
}

var start = 1;
var max = 10;
var query = "";
var total = "";

function checkEnter (e) {
    var characterCode;
    if(e && e.which){ e = e; characterCode = e.which; }
    else{ e = event; characterCode = e.keyCode; }
    if(characterCode == 13){ 
	var run = DOM('submitQueryButton').onclick; run();
    }
}

function submitQuery (form, start, max, urlDiv) {
    if(start<=1) { start = 1; }
    DOM('loadGIF').style.display="inline";

    var queryInput = DOM(form).value;
    query = queryInput;
    if(!queryInput) {
	var widget = new browseMediaWidget('', start, max, urlDiv, total);
	widget.displayErrorWidget();
	return false;
    }
 
    var callback = function (jSON) {

	if(!jSON || jSON == 'null') { 
	    DOM('loadGIF').style.display="none";
	    DOM('searchResults').innerHTML =  "<span style='color: red'>No results found.</span>";

	    var widget = new browseMediaWidget('', start, max, urlDiv, total);
	    widget.displayErrorWidget();
	    return false;
	}

	var results = setResults(jSON);
	    total = results[0]['total'];
	var widget = new browseMediaWidget('', start, max, urlDiv, total);
	widget.displayQueryWidget();
	DOM('loadGIF').style.display="none";
    }
    
    var XOBJ;
    if (window.XMLHttpRequest) {
	XOBJ = new XMLHttpRequest();
    } else if(window.ActiveXObject) {
	XOBJ = new ActiveXObject("Microsoft.XMLHTTP");
    }

    XOBJ.onreadystatechange = function() {
	if (XOBJ.readyState == 4) {
	    if(callback) { callback(XOBJ.responseText); }
	}
    }
    
    XOBJ.open('GET', './warMonitor/php/queryRaw.php?q=' + queryInput + '&s=' + start + '&m=' + max + '&t=' + timeStamp(), true);
    XOBJ.send(null);
}

function updateCategorySelect (label) {
    var category = label;
    switch (category) {
    case 'Automobiles & Vehicles': DOM('cat1').value = 4; break;
    case 'Comedy': DOM('cat1').value = 6; break;
    case 'Education': DOM('cat1').value = 9; break;
    case 'Entertainment': DOM('cat1').value = 12; break;
    case 'Gaming': DOM('cat1').value = 14; break;
    case 'Howto & Style': DOM('cat1').value = 10; break;
    case 'Music': DOM('cat1').value = 21; break;
    case 'News & Politics': DOM('cat1').value = 27; break;
    case 'Nonprofits & Activism': DOM('cat1').value = 26; break;
    case 'People & Blogs': DOM('cat1').value = 5; break;
    case 'Pets & Animals': DOM('cat1').value = 2; break;
    case 'Science & Technology': DOM('cat1').value = 31; break;
    case 'Sports': DOM('cat1').value = 30; break;
    default: DOM('cat1').value = 'default'; break;
    }
}

function updatePreview(idTag, urlDiv) {
    var total = results[0]['total'];
    var attack = new browseMediaWidget('chooseMediaDiv', start, 10, urlDiv, total);
    var result = results[idTag];
    attack.result = result;
    attack.displayPreviewWidget();
    updateCategorySelect(result['label']);    
    DOM(urlDiv).value = result['watch'];
    DOM(urlDiv).style.backgroundColor = '#CCFF99';
}

function updateValidPreview(idTag, urlDiv) {
    var attack = new browseMediaWidget('chooseMediaDiv', start, 10, urlDiv, total);
    var results = previewResult[idTag];
    attack.result = results;
    attack.displayPreviewWidget();
    updateCategorySelect(results['label']);
    DOM(urlDiv).style.backgroundColor = '#CCFF99';
}

function setResults(rawData) {
    eval('results=(' + rawData + ')');
    return results;
}

function previewVideo() {
    var attack = new browseMediaWidget('chooseMediaDiv', start, 10, total);
    attack.displayPreviewWidget();
}

function autoValidate (input, div) {
    var embed = input.value; 
    var callback = function (jSON) {
	if(!jSON) {
	    DOM('url1').style.backgroundColor = 'pink';
	    return false;
	}

	eval('previewResult=(' + jSON + ')');
	updateValidPreview(0, div);
    }
    
    var XOBJ;
    if (window.XMLHttpRequest) {
	XOBJ = new XMLHttpRequest();
    } else if(window.ActiveXObject) {
	XOBJ = new ActiveXObject("Microsoft.XMLHTTP");
    }

    XOBJ.onreadystatechange = function() {
	if (XOBJ.readyState == 4) {
	    if(callback) { callback(XOBJ.responseText); }
	}
    }
    
    
    XOBJ.open('POST', './warMonitor/php/validate.php?url=' + escape(embed)  + '&t=' + timeStamp(), true);
    XOBJ.send(null);
}