﻿
function ClickIt(storyID, isAuthenticated) {
    if(isAuthenticated) {
        HideElement(GetStoryClickItElement(storyID));
        Ajax_ClickStory(storyID, true, ClickIt_End, Failure);
    } else {
        document.location = WEB_BASE_URL + "login.aspx?ReturnUrl=" + document.URL;
    }
}

function ClickIt_End(storyID, ClickCount) {
    SetStoryClickCountText(storyID, ClickCount);
    ShowElement(GetStoryUnClickItElement(storyID));
    FinishLoading();
}

function UnClickIt(storyID) {
    HideElement(GetStoryUnClickItElement(storyID));
    Ajax_ClickStory(storyID, false, UnClickIt_End, Failure);
}

function UnClickIt_End(storyID, ClickCount) {
    SetStoryClickCountText(storyID, ClickCount);
    ShowElement(GetStoryClickItElement(storyID));
    FinishLoading();
}

function SetStoryClickCountText(storyID, ClickCount) {
    if(ClickCount != "") {
        GetStoryClickCountElement(storyID).innerHTML = ClickCount;
    }
}

function ReportAsSpam(storyID) {
    Ajax_ReportAsSpam(storyID, ReportAsSpam_End, Failure);
}

function ReportAsSpam_End(storyID) {
    alert("با تشکر از شما، اين آيتم به عنوان يک اسپم به مديريت سايت گزارش شد و به زودي بررسي مي‌شود");
    FinishLoading();
}







function GetStoryClickCountElement(storyID) { return document.getElementById(storyID + "_ClickCount"); }
function GetStoryClickItElement(storyID) { return document.getElementById(storyID + "_ClickIt"); }
function GetStoryUnClickItElement(storyID) { return document.getElementById(storyID + "_UnClickIt"); }
function GetStoryTagsElement(storyID) { return document.getElementById(storyID + "_StoryTags"); }
function GetStoryTagInputElement(storyID) { return document.getElementById(storyID + "_TagInput"); }
function GetLoadingElement() { return document.getElementById("LoadingSpan"); }
function GetEditableTagList(storyID) { return document.getElementById(storyID + "_EditableTagList"); }
function GetEditableTagListNoTags(storyID) { return document.getElementById(storyID + "_EditableTagListNoTags"); }

//common:

function StartLoading() {
    ShowElement(GetLoadingElement());
}

function FinishLoading() {
    HideElement(GetLoadingElement());
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function HideElement(element) { SwitchCssClass(element, "Visible", "Hidden"); }
function ShowElement(element) { SwitchCssClass(element, "Hidden", "Visible"); }

function SwitchCssClass(element, oldClass, newClass) {
    var regEx = new RegExp(oldClass, "gi");
    element.className = element.className.replace(regEx, "");
        
    regEx = new RegExp(newClass, "gi");
    element.className = element.className.replace(regEx, "");
        
    if(element.className.length > 0) {
        element.className = element.className + " " + newClass; 
    } else {
        element.className = newClass;  
    }
}

function AddCssClass(element, cssClassName) {
    SwitchCssClass(element, cssClassName, "");
    
    element.className = element.className + " " + cssClassName; 
}

function ToggleElement(element) {
    if (element != null) {
        if (IsElementVisible(element)) {
			HideElement(element);
        } else {
			ShowElement(element);               
        }
    }
}

function IsElementVisible(element) {
    return !(element.className.indexOf("Hidden") != -1);
}

function IsElementHidden(element) {
    return !IsElementVisible(element);
}

function Failure() {
    alert("بروز خطا");
}


function JsonToObject(json) {
    return eval('(' + json + ')');
}



function TrimString(rawString) {
  rawString = rawString.replace( /^\s+/g, "" );
  return rawString.replace( /\s+$/g, "" );
}

function Trace(message){
  if( typeof( jsTrace ) != 'undefined' ){
    jsTrace.send(message);
  }
}