function isInteger( number ) {
	return /^d*$/.test( number ) 
}

function ewLetterGradesMap() {
	return new Array( '--', 'F', 'D-', 'D', 'D+', 'C-', 'C', 'C+', 'B-', 'B', 'B+', 'A-', 'A', 'A+' );
}

function ewNumericalGradesMap() {
	return new Array( '', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12' )
}

function ewIndexOf( arr, value ) {
	var result = -1;
	
	for ( var i = 0; i < arr.length; i++ ) {
		if ( arr[ i ] == value ) {
			result = i;
			break;
		}
	}
	
	return result
}

function ewMapGrade( grade ) {
	
	
	var result = '';
	
	var letterGrades = ewLetterGradesMap();
	var numberGrades = ewNumericalGradesMap();
	
	if ( grade == numberGrades[ 0 ] || isInteger( grade ) == 1 ) {
		var position = ewIndexOf( numberGrades, grade );
		result = letterGrades[ position ];
	} else {
		var position = ewIndexOf( letterGrades, grade );
		result = numberGrades[ position ];
	}
	
	return result
}

function ewSetGrade( articleID, letterRating ) {

		

	var numericalRating = ewMapGrade( letterRating );

	
	
	
	
	var bodyNode = document.getElementsByTagName( 'body' ).item(0);
	var newIframe = document.createElement( 'iframe' );
	
	newIframe.setAttribute( 'src', 'http://grades.ew.com/feedback/grade?rating.articleId=' + articleID + '&rating.totalScore=' + numericalRating  + '&rating.pageStyle=0' );
	newIframe.setAttribute( 'width', 1 );
	newIframe.setAttribute( 'height', 1 );
	newIframe.setAttribute( 'style', 'position:absolute; top:0; left:0; visibility:hidden;' );
	bodyNode.appendChild( newIframe );
	
	var readerGrade2Node = document.getElementById( "grade" );
	if ( readerGrade2Node != null ) {
		readerGrade2Node.innerHTML = letterRating;
	}

}



